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

解決済みの質問

EXCEL VBA ユーザーフォームコンボボックスのRowSourceの設定方法について

EXCEL VBAのユーザーフォーム内のコンボボックスのRowSourceの設定方法について質問があります。
基本的な質問かもしれませんが、うまく検索できませんでした。

「リスト一覧」シートに
    A1  B1   C1
1行 りんご ばなな ぶどう
2行 100円  200円 300円
3行 110円  210円 310円
という値を入れる。
ユーザーフォーム内にコンボボックスを2つ設置し、
コンボボックス1の値が「リスト一覧」シートの1行の値と同じときに
コンボボックス2のRowSourceを同じ列の2行、3行に設定する。

Private Sub ComboBox1_Change()
Dim i As Integer
 i = 1
  Do Until Sheets("リスト一覧").Cells(1, i) = ComboBox1.Value
   i = i + 1
  Loop
ComboBox2.RowSource = i列の2行目及び3行目.Address
End Sub
というコードになると思うのですが、うまくいきません。
どうぞよろしくお願いいたします。

投稿日時 - 2009-04-14 22:04:34

QNo.4879758

困ってます

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

>りんご ばなな ぶどう
の選択で得られるListIndex値を利用して、

Private Sub ComboBox1_Change()
Dim i As Integer

ComboBox2.ListIndex = -1
i = ComboBox1.ListIndex

ComboBox2.RowSource = Cells(2, i + 1).Resize(2).Address(0, 0)
End Sub

こんなとか?

投稿日時 - 2009-04-14 22:45:11

お礼

返事が遅くなりましてすいません。
教えていただいたとおりにやってみたら出来ました。
Resize()という使い方を知らなかったので勉強になりました。
また何かありましたらよろしくお願いいたします。

投稿日時 - 2009-04-25 10:49:08

ANo.1

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

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

回答(1)

あなたにオススメの質問