- ベストアンサー
VBAでComboboxにマクロを割り当てたい
- VBAで作成したComboboxに、標準モジュール内のマクロを割り当てたい場合、以下のコードを使用します。
- 上記のコードでは、Sheet1にComboBox1が作成され、ComboBox1_Changeイベントに標準モジュール内のSub calが割り当てられます。
- これにより、コンボボックスの選択が変更される度にSub calが実行されます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
三度です >ComboBoxを貼り付けるシートも毎回作成するのでこれもだめで 打開案ですがどうでしょうか? 作成するシートにComboBoxを貼り付けるのではなく、 ComboBoxが張り付いているシートをコピーする (ComboBoxが張り付いているシートは非表示) これだと、関数自体もコピーされますし、 関数名も固定でいけます 参考までに
その他の回答 (2)
- nagare
- ベストアンサー率33% (280/831)
勘違いすみません OnActionプロパティでマクロを登録するのですが、ComboBoxだとできないみたいです。 ちなみに、CheckBoxだとできます。 With ActiveSheet.CheckBoxes.Add(10, 10, 20, 20) .Name = "CheckBox " & .Index .Caption = "" .OnAction = "cal" End With 手として ComboBox_Change関数をあらかじめ複数個書いておく というのはダメでしょうか?
補足
ありがとうございました。 ComboBoxはだめですか。 ComboBox_Change関数をあらかじめ複数個書いておくのも考えたのですがそもそもComboBoxを貼り付けるシートも毎回作成するのでこれもだめで。
- nagare
- ベストアンサー率33% (280/831)
Private Sub ComboBox1_Change() Call cal End Sub これでよければできますよ
補足
結果てきに Private Sub ComboBox1_Change() Call cal End Sub になるようにCombobox作成マクロはつくれますか?
補足
説明不足ですみません。 Sheet1でComboBoxを何個貼り付けるか決定(1~100) そのあとSheet2に貼り付ける その貼り付け位置も他の条件で12種類あるので かなり複雑になりそうです。 が、ほかに方法もなさそうなのでやってみます。