• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA(マクロ内でマクロを選択する))

エクセルVBAでマクロ内でマクロを選択する方法は?

このQ&Aのポイント
  • エクセルVBAのマクロ内で他のマクロを選択して実行したい場合、具体的な手順は以下の通りです。
  • まず、対象のデータを選択させるために入力BOXを表示し、開始番号と終了番号を指定します。
  • 次に、A~Gのどのマクロを実行するかを選択させるための選択画面を表示します。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

マクロ名は既に分かっているのですからコンボボックスか何かで選択させて、選択したマクロ名のマクロを実行したいと言う事ですかね? 例としてA1セルに"Sample_A"または"Sample_B"と入っているとします。 Private Sub CommandButton1_Click()   Dim sFuncName As String   sFuncName = Range("A1")   Application.Run sFuncName End Sub ↓以下は標準モジュールに Sub Sample_A()   MsgBox ("マクロA") End Sub Sub Sample_B()   MsgBox ("マクロB") End Sub

e-d-o-
質問者

お礼

有難うございました。とても勉強になりました。

その他の回答 (2)

  • pa_cotta
  • ベストアンサー率43% (25/58)
回答No.2

listboxとかでマクロの一覧を表示して、選択した名前の関数を実行するようにすればできませんか? しばらくVBAというかVBは触ってないのでうろ覚えですが、「call 関数名」で関数の呼び出しができた覚えがあります。 マクロの一覧は配列とかに入れておけばひっぱってくるのも楽かと思います。 どちらにしろ開始番号と終了番号を入力するのであれば、入力用のフォームを作ってその中で 一緒にマクロまで選択させてしまうのがいいかと。

e-d-o-
質問者

お礼

有難うございました。とても勉強になりました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

例えば次のようなマクロにします。 Sub マクロ1 () ・・・・ Call マクロ2 ・・・・・ End Sub Sub マクロ2 () ・・・ ・・・・ End Sub

e-d-o-
質問者

お礼

有難うございました。とても勉強になりました。

関連するQ&A