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

解決済みの質問

excel vba listboxについて

EXCELのVBA LISTBOXに関することで質問です。

ワークシート1のA2-5セルに取引先名を入力してあります。

UF1という名前のユーザーフォームの中にリストボックスを作成し、ワークシート1のA2-5の取引先を表示するには、

Private Sub UserForm_Initialize()
Dim torihiki As String
torihiki = Worksheets(1).range("A2:A5")
UF1.ListBox1.List() = torihiki
End Sub

と打ち込んでいます。
ちなみに、ユーザーフォームは以下のようにOKボタンで閉じるようにしました。

Private Sub CommandBottan1_Click()
unload UF1
End Sub

質問したいのはここからですが、
上のユーザーフォーム内のリストボックスで選択された取引先をTRHKという変数に代入したい場合、どうしたらいいのでしょうか?

私の少ない知識を振り絞って以下のように考えてみたのですが、
TRHK = UF1.ListBox1.List()
としても代入されていないようです。

List()ではないメソッドが必要なのだと思うのですが・・・・
.Selectedとかでしょうか?

どなたか、ご教授願います!
宜しくお願い致します。

投稿日時 - 2011-04-18 09:29:20

QNo.6676333

すぐに回答ほしいです

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

EXCEL2003ではこんな感じでいけます。



Private Sub UserForm_Initialize()
ListBox1.AddItem "aaaaa"
ListBox1.AddItem "bbbbb"
ListBox1.AddItem "ccccc"
End Sub


Private Sub CommandButton1_Click()

If ListBox1.ListIndex = -1 Then
MsgBox "値未選択です"
Else
MsgBox ListBox1.List(ListBox1.ListIndex) '<------ここかな
End If

End Sub

投稿日時 - 2011-04-18 09:51:06

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

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

回答(2)

ANo.2

下記を参考に
Private Sub UserForm_Initialize()
Dim torihiki As Variant
torihiki = Worksheets(1).Range("A2:A5")
UserForm1.ListBox1.List() = torihiki
End Sub
ヴァリアント変数の使い方に注意。
ーー
リストボックスのクリックしたアイテムを取るのは
Private Sub ListBox1_Click()
Range("B1") = UserForm1.ListBox1.List(ListBox1.ListIndex)
End Sub
ーー
こんなところへ質問しなくてもこの程度のことは、Googleででも「VBA Listbox」で照会すれば記事が出るよ。
一例
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_userform03.html

投稿日時 - 2011-04-18 10:04:48

お礼

回答ありがとうございます。

投稿日時 - 2011-04-21 11:08:01

あなたにオススメの質問