
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA ユーザーフォームの Keypre...
-
ユーザーフォームで動的(Me.Con...
-
ExcelVBAでListViewが使用できない
-
エクセルVBAでオプションボタン...
-
chr関数の呼び出しで「プロ...
-
チェックボックスをオンにした...
-
VB.NETで複数のTextBoxのTextプ...
-
'ckbl' コントロールは作成され...
-
変数をコントロール型で使用す...
-
カメラスクロールするのを動画...
-
Excel VBA で Richtextboxを使...
-
ListViewのチェックボックスに...
-
vb.netで画面のコントロールId...
-
エクセル・VBA CheckBoxのオブ...
-
間違えて配置してしまったコン...
-
EXCELでactivexコントロールを...
-
C#で角が丸いテキストボックス
-
ACCESS2010のVBAでフォーム内ク...
-
C# FlowLayoutPanelにて
-
Groupboxの配下のコントロール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでオプションボタン...
-
エクセル・VBA CheckBoxのオブ...
-
カメラスクロールするのを動画...
-
EXCELでactivexコントロールを...
-
VBA ユーザーフォームの Keypre...
-
'ckbl' コントロールは作成され...
-
ExcelVBAでListViewが使用できない
-
チェックボックスをオンにした...
-
ユーザーフォームで動的(Me.Con...
-
chr関数の呼び出しで「プロ...
-
全てのオブジェクトのプロパテ...
-
vb.netで画面のコントロールId...
-
間違えて配置してしまったコン...
-
Excel VBA で Richtextboxを使...
-
VBAのフォームでTextBoxがいっ...
-
OCXって何ですか?
-
C# Form上に配置されたコントロ...
-
エクセル コントロールツール...
-
変数をコントロール型で使用す...
-
Groupboxの配下のコントロール...
おすすめ情報