Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10全般 : Excel 2016)
call の呼び出し先を変数にしたいです
投稿日時: 19/11/20 12:13:12
投稿者: mikimikimickey

「Excelシート上でテンプレートを選択し、
作成ボタンをクリックすると対象テンプレートのメールが作成できる。」
ようなイメージです。
 
Excelシートのあるセルでマクロ名を選択し
その値を call の呼び出し先で使いたいのですがどのように書いたら良いでしょうか?
 
下記の「★作成ボタンに登録されているマクロ」について教えていただけますでしょうか。
 
★Excelシート---------------------------
セルA1にてテンプレ名を選択
└"テンプレートA"
-------------------------------------
 
★作成ボタンに登録されているマクロ------------
Sub メール作成()
 
Dim テンプレ As String
 
テンプレ名 = Range("D3").Value
 
■Call テンプレ ←!ここの部分の書き方が知りたいです! 
 
End Sub
------------------------------------------
 
★call先のマクロ---------------------------
Sub テンプレートA()
 
(メール作成マクロ)
   
End Sub
-------------------------------------------

回答
投稿日時: 19/11/20 12:47:28
投稿者: よろずや

引用:
call の呼び出し先を変数に

call の呼び出し先を変数にすると、コンパイラでのエラーチェックにかからず
実行されるまでエラーが分からないばかりか
後日プログラムの解析が困難になります。
 
普通に、
 
Select Case テンプレ名
    Case "テンプレ名A"
        Call テンプレ名A
    Case "テンプレ名B"
        Call テンプレ名B
End Select

 
辺りで妥協するのが吉。
 
どうしても変数でというなら、
CallByName
で検索しましょう。

回答
投稿日時: 19/11/20 13:57:54
投稿者: WinArrow
投稿者のウェブサイトに移動

代案
 
(1)RUNメソッドを使う
 
 テンプレ名 = Range("D3").Value
 RUN テンプレ名

トピックに返信