• 締切済み

ユーザーフォームのVBAエラー

いつもお世話になります。 WINDOWS7 EXCELL2010 です。 参照図のようにエラーが出ますがご指導いただけませんか。 コンパイルエラー: 名前が適切ではありません;UserFormer_Initilize どんなが名前にすればいいか分かりませんのでご指導いただけませんか。

みんなの回答

回答No.4

Initialize、及びTerminateは、クラスのインスタンス化、及び解放の時に呼び出されるイベントです。 つまり今回の場合は、UserFormを利用しようとした瞬間にInitializeイベントが走行し、 利用をやめた時にTerminateイベントが走行します。 Private Sub Hoge() Dim f As UserForm1 Set f = New UserForm1 ' このタイミングでInitializeが走行 Set f = Nothing ' このタイミングでTerminateが走行 End Sub 通常、メソッドを定義する際、クラス名(今回の場合はUserForm)をメソッド名に 利用しません。 メソッド名は、処理内容を一目で分かる名称にします。 Private Sub UserForm_Initialize() createComboItems() End Sub Private Sub createComboItems() With ComboBox1 .AddItem "振込"  ・  ・  ・ End Sub のように。

dorasuke
質問者

お礼

あの手この手で色々試しました 何かわからなくなりました。 挿入 USERFORM を追加していじくっいるうちに警告は出なくなりました。 ただ 実行のコマンドボタンをクリックしUSERFORMでデーターを入力してシートには反映されなくなりました。 再度別に質問したいと思います。 ご協力ご指導ありがとうございました。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

ちょっと補足 Private Sub UserForm_Initialize() は、このユーザフォームを表示する前に実行されるイベントプロシージャです。 2つめのUserForm_Initializeを「UserForm_Initialize2」の様に名前を変えると、コンパイルエラーは出なくなりますが、イベントプロシージャではなくなりますので自動的に実行はされません。 どうしても「UserForm_Initialize2」の様にして、表示前に実行したいなら、UserForm_Initialize の中で「UserForm_Initialize2」をcallしてやる必要があります。

dorasuke
質問者

お礼

あの手この手で色々試しました 何かわからなくなりました。 挿入 USERFORM を追加していじくっいるうちに警告は出なくなりました。 ただ 実行のコマンドボタンをクリックしUSERFORMでデーターを入力してシートには反映されなくなりました。 再度別に質問したいと思います。 ご協力ご指導ありがとうございました。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

UserForm_Initialize が2つも有ったらそうなるでしょう。 1つにまとめれば済む話です。

  • kool_noah
  • ベストアンサー率33% (95/285)
回答No.1

上にも同じ名前があるのでかぶってるから、どっちの事行ってるのかわからんって事でPCが困ってます 名前を変えてあげる必要がありますね。 違ってさえいれば何でもいいです UserFormer_Initilize2でも ただ、あとで見返したときや、他で使いたいときにあれ?あっちって1だっけ?2だっけ?ってなるので、わかりやすい名前にした方がいいですよね。 その処理はコンボボックスの月の初期化であれば month_combo_initializeとか

dorasuke
質問者

お礼

あの手この手で色々試しました 何かわからなくなりました。 挿入 USERFORM を追加していじくっいるうちに警告は出なくなりました。 ただ 実行のコマンドボタンをクリックしUSERFORMでデーターを入力してシートには反映されなくなりました。 再度別に質問したいと思います。 ご協力ご指導ありがとうございました。

関連するQ&A