エクセルのシート内で10個以上のマクロをユーザーに切り替えて使わせたいです。ボタンにすると画面がすっきりしないので例えばよくWebページで使われるようなドロップダウンメニュー(エクセルではコンボボックスというのでしょうか)にマクロを登録する方法を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:nitscape No.1

回答回数526ベストアンサー獲得回数0

ポイント50pt

結論から書きますと、実現はできますが、使うのは面倒なのでやめたほうがいいと思います。


まず「フォーム」ツールバーからコンボボックスをExcelのシート内に設置します。


シートにテストとして、「a」と「b」と書いたセルを用意します。


設置したコンボボックスを右クリックしてコントロールの書式設定を開き、コントロールタブの入力範囲で先ほど用意した「a」と「b」と書かれたセルを選択します(これでコンボボックスにはaとbが表示されるようになります)。


再びコンボボックスを右クリックしてマクロの登録を選択します。すると「ドロップ1_Change()」というようなマクロが自動的に作成されます。

これはコンボボックスが選択されたときに呼ばれるマクロです。


ここでマクロを以下のようにします。

これでコンボボックスの選択が変わると、Chabgeマクロが呼ばれますから、選択された文字列に応じて実行したいマクロを呼び出します。


Sub ドロップ1_Change()


strText = ActiveSheet.DropDowns(Application.Caller).List(ActiveSheet.DropDowns(Application.Caller).ListIndex)


If strText = ”a” Then

exe_a

ElseIf strText = ”b” Then

exe_b

End If


End Sub


Sub exe_a()


MsgBox ”マクロaを実行”


End Sub


Sub exe_b()


MsgBox ”マクロbを実行”


End Sub

id:mochitsuki72

ありがとうございます。求めていたものができそうです。

2005/12/28 10:43:13

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません