はじめまして。
私は今仕事でちょっとしたシステムをエクセルで作っています。
VBAを初めて使うのでご教示頂けたら幸いです。
私が作りたいシステムのイメージは下記の通りです。
リストボックスが二つあって、それぞれ大カテゴリと小カテゴリ。
例えば大カテゴリには野菜、魚、果物などが選択できるようになっていて、
大カテゴリで野菜を選択した場合には小カテゴリでじゃがいも、玉ねぎ、ほうれん草が、
大カテゴリで魚を選択した場合には小カテゴリで鮭、秋刀魚、鰯が、
大カテゴリで果物を選択した場合は小カテゴリでみかん、りんご、バナナが選択できるようにしたい
と思っています。
そしてその選択したアイテムによって、変数に値が代入され
別に作ってあるマクロの変数に値を飛ばし、
そのマクロを実行させるようにしたいのです。
変数に値というのは、例えばじゃがいもを選択した場合には、
i=3,k=3 といった具合です。
また別に作ってあるマクロというのは、例えば鮭を選択した場合だったら、
その鮭の写真や詳細なデータをDBから拾いエクセル上に表示させるマクロです。
こちらのマクロはもう完成しております。
このようなシステムを作るのは可能でしょうか?
どなたかコードを具体的にご教示頂けましたら幸いです。
何卒宜しくお願い申し上げます。
No.1ベストアンサー
- 回答日時:
> 別に作ってあるマクロの変数に値を飛ばし、
> そのマクロを実行させるようにしたいのです。
これは、そのマクロに引数で値を渡すって事で良いのでしょうか?
> 変数に値というのは、例えばじゃがいもを選択した場合には、
> i=3,k=3 といった具合です。
なぜ、「じゃがいも」がこの値になるのか解りませんでしたので、ListBox1とListBox2のListIndexの値(選択されているインデックス)を渡すようにしてみました。
Sheet1に添付の図の様な表を作成しておきます。
また、フォームのListBox1とListBox2のRowSourceプロパティには、それぞれ初期値として
Sheet1!A2:A4
Sheet1!C2:C4
を入れておいてください。
'ListBox1がクリックされたら小カテゴリの内容を変更する。
Private Sub ListBox1_Click()
nSel = 1 + ListBox1.ListIndex
sStr = "Sheet1!" & Range(Cells(2, nSel + 2), Cells(4, nSel + 2)).Address
ListBox2.RowSource = sStr
ListBox2.ListIndex = 0
End Sub
'ボタンを押したら作成済みのマクロを起動する
Private Sub CommandButton1_Click()
Call 作成済みのマクロ(ListBox1.ListIndex, ListBox2.ListIndex)
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- その他(Microsoft Office) Microsoft Edgeの「関心のあるカテゴリ」を表示させるには。 1 2023/03/16 18:05
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Excel(エクセル) エクセルで保存時に全部のシートの最終行をコピーして数値で貼り付けたい 3 2023/08/14 15:49
- Excel(エクセル) Excel2016 行間を詰めたい&同じカテゴリなら上位2つだけを表示したい 5 2022/06/03 12:19
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- 教えて!goo 「教えて!goo」のルールで質問があります。 1 2022/06/17 05:57
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/22 11:43
- Excel(エクセル) excelで可視セルのみ置換 3 2022/08/04 11:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
ファイル名を今日の日付、時刻...
-
Powerpointでランダムな数字の...
-
cellsで特定の離れた範囲を選択...
-
Pictures.Insertメソッド⇒Shape...
-
VBA[Private Sub]のコードをシ...
-
ピボットグラフの書式の固定に...
-
エクセルシートをまとめて印刷...
-
【ExcelVBA】クエリの更新とピ...
-
VBAに詳しい方教えてください。
-
別ブックからユーザーフォーム...
-
エクセルのマクロでSelection.S...
-
htmlまたはJavascriptからファ...
-
エクセルワークシート上に印刷...
-
エクセル2007 テキストボ...
-
Word 2016で赤文字指定のマクロ...
-
エクセルVBAで、画像の倍率を知...
-
VBAで棒グラフの色を変えたい
-
VBAでシートの保護をかける際に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
VBAに詳しい方教えてください。
-
ファイル名を今日の日付、時刻...
-
cellsで特定の離れた範囲を選択...
-
エクセルシートをまとめて印刷...
-
VBA[Private Sub]のコードをシ...
-
Powerpointでランダムな数字の...
-
【ExcelVBA】クエリの更新とピ...
-
エクセル2007 テキストボ...
-
別ブックからユーザーフォーム...
-
エクセルのマクロでSelection.S...
-
Pictures.Insertメソッド⇒Shape...
-
ピボットグラフの書式の固定に...
-
どのドキュメントは暗号化され...
-
エクセルVBAで、画像の倍率を知...
-
最初の1回のみにボタンクリッ...
-
エクセルワークシート上に印刷...
-
VBAを使ってエクセルシート...
-
wordのマクロで縮小して貼り付...
おすすめ情報