
VBAの詳しい方教えて下さい。
ConboBox1でSheets1のA列に入ってるデータをピックアップします。
そのピックアップされたのがAAなら
次のConboBox2でSheets2のA列に入ってるデータをピックアップして
BBならSheets3のA列に入ってるデータをピックアップたいのですが、どのようにすれば良いのでしょうか。
ComboBox1.RowSource = Sheets("Sheets1").Range("A1:A2").Address
もしComboBox1にAAが入ったら
ComboBox2.RowSource = Sheets("Sheets2").Range("A1:A2").Address そして
また もし ComboBox1にBBが入ったら
ComboBox2.RowSource = Sheets("Sheets3").Range("A1:A2").Address
これをひとつのUserFormで行いたいのです。
得意先別・商品別・単価をピックアップしたいのです。
教えて下さい。
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
まず、test もしくは test2 というのは変数ですか?
testという文字列と比較したいのであれば、"test"となります。
あと、RowSource指定時にAddressプロパティを指定してしまうと
"$A$1:$A$4"のような文字列になってしまうと思うのですが。。。
RowSource指定には(ComboBox1の設定時も同じく)文字列を使用するようにしてください。
ComboBox1.RowSource = "CCB!A3:A4"
ComboBox2.RowSource = "NT!A3:A4"
ComboBox2.RowSource = "98!A3:A4"
となります。『シート名!』という書き方がポイントですね。
ここは上手く動いているのであれば、そのままでも結構なんですが。
そして、イベントですが、現在、UserForm_Activateを使用してらっしゃるようですね。
UserForm_InitializeでComboBox1.RowSourceの設定を行い、
ComboBox1_ChangeでComboBox1.TextをString型の変数に取得する
(現在、Dim t As VariantですがDim t As Stringに変更)ようにして、
If t = "test" Then ~ ElseIf t = "test2" Then ~ End If としてみてください。
・・・なるべくご本人が修正したほうがいいと思い、ソースは書かずに
説明してみましたが、私は説明下手なので、わからなかったら、
または私の勘違いなどありましたら、
また補足に入れてください。(^-^;
ありがとうございます。
またお礼が遅れてすみません。
結果combobox1を選択後
sheetをチョイスさせ
userform1.comboboxにて再度ROwSourceさせました。
ダイアログボックスが2つでる形になりましたが、
勉強になりました。
本当にありがとうございました。
No.3
- 回答日時:
こんにちは。
ComboBox2のRowSourceプロパティを、
ComboBox1の選択値に応じて動的に変更したいということですか?
ちょっと内容的にあっているか自信がありませんが、
こんな内容でどうでしょうか。
ちなみに、
ActivateイベントでComboBox2のRowSourceを設定しても、
ComboBox1の変更に、ComboBox2の内容はリンクして変化しません。
Changeイベントを使うべきでしょう。
今回のサンプルは、
Combobox1の内容を
「Test」「Test2」といった「テキスト」ではなく
「1(行目)」「2(行目)」といった「インデックス値」で取得しています。
この辺の仕様が希望と異なるときは、修正してみてください。
Option Explicit
Private Sub ComboBox1_Change()
Dim varIndex1 As Variant
varIndex1 = ComboBox1.ListIndex + 1 '何行目をセレクトしたか取得
Select Case varIndex1
Case Is = 0 'リストにない項目を選択したとき
ComboBox2.RowSource = ""
Case Is = 1 'リストの1行目を選択したとき
ComboBox2.RowSource = "NT!A3:A4"
Case Is = 2 'リストの2行目を選択したとき
ComboBox2.RowSource = "98!A3:A4"
End Select
End Sub
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "CCB!A3:A4"
End Sub
お礼が遅れましてどうもすみませんでした。
ありがとうございます。
#1の方のアドバイスを見て自分なりに作成しました。
結果combobox1で選択した後に、userform.showにして
初めからcombobox2を選択できるようにしました。
そして、お礼をしようとしてビックリしました。
新しいsampleを記述して戴いているではないですか!
しかも、私がやりたかった事ピッタリです。
どうもありがとうございます。
早速、作り直しを致します。
No.1
- 回答日時:
ComboBox1のChangeイベント(かな?)で
ComboBox1のテキストが"AA"ならシート2の方、"BB"なら3
・・・と、質問文そのままですが(^-^;
エラーが出るとかですか?
この回答への補足
返答ありがとうございます。
エラーはでないのです。
Private Sub Userform_Activate()
Dim t As Variant
ComboBox1.RowSource = Sheets("CCB").Range("A3:A4").Address
t = ComboBox1
If t = test Then
Sheets("NTT").Select
ComboBox2.RowSource = Sheets("NT").Range("A3:A4").Address
ファンクション8で見ますとELSEIFからENDIFまで飛ばされてしまいます。
ElseIf t = test2 Then
Sheets("DDI").Select
ComboBox2.RowSource = Sheets("98").Range("A3:A4").Address
End If
End Sub
結果コンボボックス1でTESTかTEST2を入れると
どちらも、シートNTを見てしまいます。
TEST2の時はシート98を見て欲しいのです。
どうか返答を宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) Excleマクロ セル値の代入と文字列の結合について 3 2022/10/05 16:47
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) excelVBAについて。 4 2022/11/21 16:15
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) excelVBAについて。 1 2022/11/30 06:16
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Excel(エクセル) ExcelVBAについて。 2 2022/12/10 20:08
- Excel(エクセル) excel vbaの配列なんですが・・・ 1 2022/12/26 18:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのVBAで集計をしたい
-
【マクロ】元データと同じお客...
-
【画像あり】オートフィルター...
-
【マクロ】数式を入力したい。...
-
Office2021のエクセルで米国株...
-
【マクロ】【相談】Excelブック...
-
vba テキストボックスとリフト...
-
【マクロ】実行時エラー '424':...
-
【マクロ】【配列】3つのシー...
-
他のシートの検索
-
【マクロ】オートフィルターの...
-
【マクロ】列を折りたたみ非表...
-
【関数】同じ関数なのに、エラ...
-
ページが変なふうに切れる
-
エクセルのリストについて
-
【マクロ】左のブックと右のブ...
-
【条件付き書式】シートの中で...
-
エクセルの関数について
-
エクセル ドロップダウンリスト...
-
9月17日でサービス終了らし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報