• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コンパイルエラーSubまたはFunction定義)

VBAユーザーフォーム作成のコンパイルエラーについて

このQ&Aのポイント
  • VBA初心者が本を見ながら作成したユーザーフォームでコンパイルエラーが発生しています。ボタンやスピン移動をクリックすると「コンパイルエラー SubまたはFunctionが定義されていません」と表示されます。
  • コードを見直しましたが、どこが間違っているのかはよくわかりません。初心者のため説明不足もありますが、どうすればエラーを解消できるのか教えてください。
  • また、コード内にはデータの書き込みや削除、表示などの処理があります。初心者でも理解しやすいように説明していただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.2

>ユーザーフォームの先頭に移動とはどうするのですか? コードウィンドウで上記プログラムの先頭と言う意味です。 --- Dim TBL(1 To 9) As Control 'ここに Private Sub Button更新_Click()  ’以下略 Private Sub UserForm_Initialize() Dim TBL(1 To 9) As Control ’これを ’以下略

shinarika
質問者

お礼

ありがとうございました

その他の回答 (2)

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.3

Dim TBL(1 To 9) As Control  Dim データ範囲 As Range '↑これもここに移動したほうがよいと思います。 Private Sub Button更新_Click()  ’以下略 ちなみに本の出版社のHPに改訂情報とか 乗ってないですか。

shinarika
質問者

お礼

ありがとうございますm(__)m今日明日と仕事が休みですので月曜日に教えて頂いた通りしてみます!またわからなくなったら助けて下さいm(__)m本のHPとかに改定情報もあるんですね!一度見てみます。もう少し勉強したいと思います。

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.1

>Dim TBL(1 To 9) As Control この宣言が"UserForm_Initialize"内にあるので TBLが局所変数になってしまって "データ書き込み"からアクセスできないと思います。 "UserForm_Initialize"内のTBLの変数宣言を ユーザフォームの先頭に移動してください。

shinarika
質問者

お礼

ありがとうございました

shinarika
質問者

補足

ありがとうございますm(__)mただ、初心者すぎて簡単すぎる質問していいですか?m(__)m ユーザーフォームの先頭に移動とはどうするのですか? ほんとすみません(>_<)いきなり、ユーザーフォームをつくって欲しいと言われ本通りにしてみたのでまだちゃんと勉強できてなくて(-_-)