こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBA リストボックスの使い方について・・・

Private Sub CommandButton1_Click()
ListBox1.RowSource = "sheet1!A1:A8"
End Sub

上記にあるようにA1~A8にあるデータをリストボックスに表示させたいのです・・・
でも上記方法だと、コマンドボタンをクリックしないと、リストボックスに登録できないですよね・・・

自分的にはリストボックスが立ち上がった状態ですぐにA1~A8のデータをリストボックス内に表示させたいのですが、そのようなことが出来るのでしょうか?

宜しくお願い致します。

投稿日時 - 2005-02-10 13:12:22

QNo.1211603

困ってます

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

このListBoxはシート上のコントロールでしょうか?ユーザーフォームのコントロールでしょうか?
RowSourceをお使いなのでおそらくユーザーフォームかと思いますのでそちらでアドバイスを。

(1)ListBox1のプロパティに直接入力する
VBEの画面でプロパティウィンドウを表示させ(F4キー)、RowSourceの欄に直接 Sheet1!A1:A8 と入力する。
この場合、ダブルコーテーションなどは一切不要です。

(2)Initializeイベントで設定する
以下のコードを追加する。(これはユーザーフォームがアクティブになったときに初期設定として働くイベントです)
Private Sub UserForm_Initialize()
ListBox1.RowSource = "sheet1!A1:A8"
End Sub

投稿日時 - 2005-02-10 15:11:39

お礼

お返事遅くなりまして申し訳ありません
上記の(2)のやり方でうまくいきました
ありがとうございます

投稿日時 - 2005-02-14 14:17:14

ANo.2

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

その場合は
UserForm_Initialize イベントですればOK

投稿日時 - 2005-02-11 14:45:14

ANo.1

Excel VAB は様々なイベントをフックできます。
また質問者さんがお作りになったように、ボタン等でイベントのトリガーも作成でます。

>リストボックスが立ち上がった状態
が何時なのかで作りようも変ってきますが、取りあえず、そのリストが配置されたシートのアクティブイベントが適当ではないでしょうか。

シートのコード上に、
Private Sub Worksheet_Activate()
CommandButton1_Click
End Sub

を記述されてはいかがでしょう。
これでブックの起動時、シートのアクティブ時、また CommandButton1 で任意にリスト更新できます。

投稿日時 - 2005-02-10 13:40:06

あなたにオススメの質問