- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コンパイルエラーSubまたはFunction定義)
VBAユーザーフォームのコンパイルエラー
このQ&Aのポイント
- VBA初心者が作成したユーザーフォームでコンパイルエラーが発生しています。ボタンやスピン移動をクリックすると「コンパイルエラー SubまたはFunctionが定義されていません」というエラーメッセージが表示されます。
- コードを見たところ、該当のエラーが発生している部分は「データ書き込み」サブルーチンでの「TBL」の部分です。
- 「TBL」は初期化されていないため、エラーが生じています。TBLの宣言や初期化を行うことでエラーを解消することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
変数の使い方が間違っています。 変数は、それを定義したSubまたはFunctionの中でしか有効ではありません。 このプログラムで言えば、 Private Sub UserForm_Initialize() Dim TBL(1 To 9) As Control Dim データ範囲 As Range ・・・・ End Sub なので、TBLやデータ範囲の変数が使えるのは Sub UserForm_Initialize の中だけです。 どうしてもUserForm_Initializeの外で使いたいなら、 パブリック変数にする必要があります。
お礼
ご丁寧にありがとうございました。