![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ユーザーフォームのコンボボックスでINDIRECT関数を使うにはどのようにすればいいでしょうか?
Private Sub UserForm_Initialize()
Me.ComboBox1.RowSource = "sheet1!B1:C1"
ComboBox2 = "=INDIRECT(?)"
End Sub
ComboBox1で種類のリストが表示され、選んだ項目により
ComboBox2のリストが表示されるようにしたいのですが
うまくいきません。
1 2 3 4
A 種類 果物 野菜
B 果物 りんご たまねぎ
C 野菜 いちご ピーマン
D みかん レタス (すべて名前を定義しています。)
VBAでINDIRECT関数を使うにはどのようにすればよいでしょうか?
No.1ベストアンサー
- 回答日時:
質問の表は、行列が逆になってます。
。(^^;;;___A____B____C___
1_種_類__果_物__野_菜__
2_果_物__りんご__ハクサイ_
3_野_菜__みかん__ダイコン_
4______ばなな__キャベツ_
Combo1の範囲=(A2:A3)
(名前)
果物=(B2:B4)
野菜=(C2:C4)
'---------------------------------------
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sheet1!A2:A3"
End Sub
'---------------------------------------
Private Sub ComboBox1_Change()
ComboBox2.List = Sheets("Sheet1").Range(ComboBox1.Value).Value
End Sub
'---------------------------------------
●Combobox2でRowSourceプロパティを使う場合は
ComboBox2.RowSource = "Sheet1!" & Sheets("Sheet1").Range(ComboBox1.Value).Address
以上です。
No.2
- 回答日時:
>VBAでINDIRECT関数を使うにはどのようにすればよいでしょうか?
VBAでINDRECT 関数など使う必要などないはずですが……。一体、どうお使いになるつもりなのか、見当も付きません。名前で使うなら、Range(名前)にすればよいですが、VBAとしては、危ない使い方です。(と書くと、また、ここの掲示板では、困った方がいらっしゃって、屈強に反発される人もいますが、VBAと名前定義は相性が良くないのです。まあ、トラブルにあわなければ、めぐり合うまではどうでもよいことですが。)
たぶん、入力規則の「リスト」の方法を、このコンボボックスで実現したいようですが、VBAは、ワークシートの処理の延長上ではありませんから、考え方を変えたほうがよいと思います。
Private Sub UserForm_Initialize()
Dim c As Range
ComboBox1.RowSource = "Sheet1!A2:A3"
End Sub
Private Sub ComboBox1_Change()
Dim Rng As Range
Dim i As Long
Set Rng = Worksheets("Sheet1").Range("B2:C4")
i = ComboBox1.ListIndex
If i > -1 Then
ComboBox2.Value = "" '特に気にならなければここは不要です。
ComboBox2.RowSource = Rng.Columns(i + 1).Address
End If
End Sub
入力規則のリストの方法を、コンボボックスで実現するには全く考え方が違うのですね。勉強になりました。
ご丁寧にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA ComboBoxについて 2 2022/10/21 12:15
- Excel(エクセル) AVERAGE関数とINDIRECT関数を使ってのオートフィル 3 2023/01/12 12:00
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) エクセルのINDEXについて 2 2022/04/17 21:41
- Visual Basic(VBA) VBA リスト表示していますが 3 2023/05/18 12:12
- Excel(エクセル) 特定の文字の合計値(空白を無視+可変に対応)を求める関数について 1 2022/08/18 10:51
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
- Excel(エクセル) Indirect関数について、Formulatextで抽出した数式を参照したい。 1 2022/12/15 11:16
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
7文字以上のフルーツをできるだ...
-
4歳の子供がさくらんぼを種ご...
-
ハーブソルトを代用できるもの...
-
中黒「・」か読点「、」か?
-
Excelでの全通りの組み合わせ出...
-
梶井基次郎の檸檬
-
さくらんぼを塩水で洗うのは?
-
ラズベリーの種の抜き方を教え...
-
Excel MATCH関数で検索範囲内...
-
スポンジケーキってどのくらい...
-
メロンとヨーグルトは合わない...
-
筍の上の部分が緑色になってい...
-
しらたきと吐き気
-
教えてください!!
-
職場で隣の人についてです。飲...
-
煮物こんにゃくの冷凍保存について
-
Excelの関数 SUBSTITUTEとIF関...
-
さくらんぼに似ているが、さく...
-
10年前のにんにく漬け、食べて...
-
しわしわのぶどうの実をフッカ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えてください!!
-
ハーブソルトを代用できるもの...
-
7文字以上のフルーツをできるだ...
-
中黒「・」か読点「、」か?
-
筍の上の部分が緑色になってい...
-
スポンジケーキってどのくらい...
-
Excel MATCH関数で検索範囲内...
-
Excelでの全通りの組み合わせ出...
-
梶井基次郎の檸檬
-
エクセルで数字を入力したら文...
-
煮物こんにゃくの冷凍保存について
-
10年前のにんにく漬け、食べて...
-
ふにゃふにゃになったキウイっ...
-
職場で隣の人についてです。飲...
-
さくらんぼに似ているが、さく...
-
パイナップルにたかる虫
-
しらたきと吐き気
-
Excelの関数 SUBSTITUTEとIF関...
-
大至急!妊娠初期でイチゴにつ...
-
4歳の子供がさくらんぼを種ご...
おすすめ情報