[[20040326105036]] 『VBA:コンボボックスのリスト表示』(うち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBA:コンボボックスのリスト表示』(うち)

コンボボックスで最初に選択しておく項目を下記のように指定しているのですが、

一覧表示されません。どこが違っているのでしょうか?

Private Sub UserForm_Initialize()

    ComboBox.AddItem "4月"
    ComboBox.AddItem "5月"
    ComboBox.AddItem "6月"
End Sub

WindowsXP,Excel2002よろしくお願いします。


 オブジェクト名はあってますか?

 >ComboBox.AddItem "4月"
  ↓
 ComboBox1.AddItem "4月"

(うち)

 では?

 あと、たくさん書くなら with を使った方がいいですよ。

 With ComboBox1
     .AddItem "4月"
     .AddItem "5月"
     .AddItem "6月"
 End With

  (INA)


最初の質問ではCombobox1の1を省略していましましたが、実際には記入しています。

INAさんの教え通り下記のように書き直して試したのですが表示されません。

申し訳ないのですが、他にどんなことが考えられますかね?

 Private Sub UserForm1_Initialize()
    With ComboBox1
     .AddItem "4月"
     .AddItem "5月"
     .AddItem "6月"
 End With
End Sub

UserForm1_Initialize()がComboBox1_Initialize()かとも思ったのですが、

ComboBoxにはInitializeというプロシージャは無いようですね。


 通常変更しない限り、UserForm1 ではなくUserForm なのですが。

 Private Sub UserForm_Initialize()
     ComboBox1.AddItem "あ"
     ComboBox1.AddItem "い"
     ComboBox1.AddItem "う"
 End Sub

 (kazu)


 >一覧表示されません。
 エラーは発生しますか?

  (INA)

(kazu)先生、(INA)先生ありがとうございました。

UserForm1 の1をはずしたら上手くいきました。

以前から疑問だったのですが、複数のUserFormを使っていても、

Private Sub UserForm_Initialize()の部分ではUserFormを番号で特定しなくても

良いのはプロパティシートのウィンドウで特定されているからからなのでしょうか?


 該当するUserFormのモジュールに記述しているからです。
 ComboBoxなどのコントロールは、そのUserFormモジュールに
 配置できるオブジェクトです。

 UserFormモジュールは、SheetモジュールやThisWorkBookモジュールと同じ
 クラスモジュールで、オブジェクトではありません。

 シートモジュールのイベントも
 Private Sub Worksheet_Change(ByVal Target As Range)
 のようにシート名が指定されないのと同じです。

  (INA) 

成る程、大変良く分かりました。ありがとうございました。

(うち)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.