1つのシートにコンボボックス(フォームコントロール)を2つ並べてあります。
コンボボックス”ドロップ1” コンボボックス”ドロップ2”
【選択肢】 【選択肢】
・1回 ・A
・2回 ・B
・3回
とあります。それぞれのコンボボックスの選択肢は、別のシートに名前を定義して表示するようにしてあります。
その際、上の例だとマクロを6種類用意してあります。
(1) 1回A
(2) 1回B
(3) 2回A
(4) 2回B
(5) 3回A
(6) 4回B
とあり、1つ目のコンボボックスで「2回」を、2つ目のコンボボックスで「B」を選んだ場合、
(4)のマクロを実行するようにするにはどのようにしたらよいでしょうか?
※ コンボボックスは両方選ばない限りはマクロを実行させません。
また、両方既に選択してあり、そのマクロが一度実行させた後、一方だけ変更しても他のマクロを実行させたいです。
また、本件とは別の内容となっていまいますが、コンボボックスなどが”フォームコントロール”と”ActiveX コントロール”と2種類あるのですが、どのように違うのでしょうか?
ちなみにExcelは2007です。ご教授よろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは。
私は、今のところ、2007 Office を購入する予定はないので、2003で回答させていただきます。
最初に、
>コンボボックスなどが”フォームコントロール”と”ActiveX コントロール”と2種類あるのですが、どのように違うのでしょうか?
フォームコントロールというのは、アプリケーションの中に組み込まれてあるもので、「軽い」「速い」の特徴があるのですが、フォームコントロールの細かな仕様は、もう探してもないわけです。いわゆる、「隠しオブジェクト」の分類でヘルプにも出てきません。
ActiveX コントロールは、外部ツールです。つけたしも利くわけで、Excel専用もあれば、汎用性のあるものもあります。表現力は豊かです、プロパティも豊富なのです。MS側では、フォームとは縁を切りたいところだろうとは思うのですが、過去の遺産(レガシー)としての互換性で、なかなか捨てることも出来ないわけです。コントロールツール側で行ったほうがいろいろな面で便利だとは思います。
今回のコードは、双方向で実行ということですから、このようなコードでよいかと思います。
標準モジュール
'Option Explicit
Dim a As Variant
Dim b As Variant
Sub ComboBox1_Click()
a = Sheet1.DropDowns(1).Value
b = Sheet1.DropDowns(2).Value
Call SelectMacro
End Sub
Sub ComboBox2_Click()
a = Sheet1.DropDowns(1).Value
b = Sheet1.DropDowns(2).Value
Call SelectMacro
End Sub
Private Sub SelectMacro()
Dim c As String
c = a & b
Select Case c
Case "11": Call macro1
Case "12": Call macro2
Case "21": Call macro3
Case "22": Call macro4
Case "31": Call macro5
Case "32": Call macro6
End Select
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBA ドロップボックスで月を選択するとそれ以降のデータが残るようにしたい。 3 2022/12/16 14:53
- Excel(エクセル) コンボボックス及びリストボックスを5段階連動させる方法をご存知の方ご教授頂きたいです。 Excelで 3 2022/04/03 21:43
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Visual Basic(VBA) マクロ初心者の質問です。 1.シートを開いてマクロを実行する場合、アクセスキーでAlt-L-PMとタ 2 2022/12/23 10:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
既存のマクロをコンボボックスのプルダウンで選択できるようにしたいです。
Access(アクセス)
-
エクセルでプルダウン選択されたらマクロの処理を実行させる方法
Word(ワード)
-
VBA ユーザーフォームのChangeイベントを停止したい
Access(アクセス)
-
-
4
コンボボックス ▼ボタンをクリックしたらイベント
PowerPoint(パワーポイント)
-
5
UserForm1.Showでエラーになります。
工学
-
6
ドロップダウンリスト 自動表示したい
Excel(エクセル)
-
7
Excel vba ListBoxについて
Excel(エクセル)
-
8
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
9
VBAのTextBoxに半角数字のみ入力したい
Visual Basic(VBA)
-
10
2重のDo~Loopは?
Visual Basic(VBA)
-
11
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
12
ExcelのComboboxでマウスのスクロールを有効にしたい
Excel(エクセル)
-
13
複数選択のListBoxでClickイベントが拾えません
Visual Basic(VBA)
-
14
VBAでオプションボタンによってコンボボックスの内容を変える方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#,vb.netで業務用アプリ開発と...
-
ExcelVBAのコントロールの種類...
-
C#で角が丸いテキストボックス
-
Excel VBA で Richtextboxを使...
-
カメラスクロールするのを動画...
-
ACCESS2010のVBAでフォーム内ク...
-
(VBA)スピンボタンの大量...
-
エクセル・VBA CheckBoxのオブ...
-
winndws セキュリティ
-
フォーカスの枠線を太くしたい
-
PDF起動時のナビゲーションパネ...
-
どれか1つでもチェックされて...
-
VBAのフォームでTextBoxがいっ...
-
ユーザーフォームで動的(Me.Con...
-
wsock32.dllによるconnectのtim...
-
ASP.NET(C#) DataGridのヘッダ...
-
IpadでZoomの音声を録音できる?
-
モニター出力制御
-
EXCELでactivexコントロールを...
-
With~EndWithの省略部分と引数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
vb.netで画面のコントロールId...
-
EXCELでactivexコントロールを...
-
ExcelVBAでListViewが使用できない
-
(VBA)スピンボタンの大量...
-
エクセルVBAでオプションボタン...
-
C#で角が丸いテキストボックス
-
ユーザーフォームで動的(Me.Con...
-
アクセス特有の書き方?
-
間違えて配置してしまったコン...
-
コンボボックスの文字によるif...
-
VBAのエラーについて、”実行時...
-
変数をコントロール型で使用す...
-
chr関数の呼び出しで「プロ...
-
With~EndWithの省略部分と引数...
-
C#で自分のウインド・ハンド...
-
excelのリストボックスで選択し...
-
'ckbl' コントロールは作成され...
-
フォーム上の現在アクティブな...
おすすめ情報