dポイントプレゼントキャンペーン実施中!

いつもお世話になります。
WINDOWS7 EXCELL2010 です。
参照図のようにエラーが出ますがご指導いただけませんか。

コンパイルエラー:
名前が適切ではありません;UserFormer_Initilize

どんなが名前にすればいいか分かりませんのでご指導いただけませんか。

「ユーザーフォームのVBAエラー」の質問画像

A 回答 (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

のように。
    • good
    • 0
この回答へのお礼

あの手この手で色々試しました
何かわからなくなりました。

挿入 USERFORM を追加していじくっいるうちに警告は出なくなりました。

ただ 実行のコマンドボタンをクリックしUSERFORMでデーターを入力してシートには反映されなくなりました。
再度別に質問したいと思います。
ご協力ご指導ありがとうございました。

お礼日時:2013/07/13 11:13

ちょっと補足



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

あの手この手で色々試しました
何かわからなくなりました。

挿入 USERFORM を追加していじくっいるうちに警告は出なくなりました。

ただ 実行のコマンドボタンをクリックしUSERFORMでデーターを入力してシートには反映されなくなりました。
再度別に質問したいと思います。
ご協力ご指導ありがとうございました。

お礼日時:2013/07/13 11:12

UserForm_Initialize が2つも有ったらそうなるでしょう。


1つにまとめれば済む話です。
    • good
    • 0

上にも同じ名前があるのでかぶってるから、どっちの事行ってるのかわからんって事でPCが困ってます


名前を変えてあげる必要がありますね。
違ってさえいれば何でもいいです
UserFormer_Initilize2でも

ただ、あとで見返したときや、他で使いたいときにあれ?あっちって1だっけ?2だっけ?ってなるので、わかりやすい名前にした方がいいですよね。

その処理はコンボボックスの月の初期化であれば
month_combo_initializeとか
    • good
    • 0
この回答へのお礼

あの手この手で色々試しました
何かわからなくなりました。

挿入 USERFORM を追加していじくっいるうちに警告は出なくなりました。

ただ 実行のコマンドボタンをクリックしUSERFORMでデーターを入力してシートには反映されなくなりました。
再度別に質問したいと思います。
ご協力ご指導ありがとうございました。

お礼日時:2013/07/13 11:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています