- ベストアンサー
或るプロシージャの呼び出し元判定
MS-EXCEL2010 VBAで或るプロシージャの呼び出し元が、プロシージャかボタン操作か、また、プロシージャならプロシージャ名、ボタン操作ならボタン名を呼び出されたプロシージャ内で知る方法は有るのでしょうか。 if文で操作を変えたいのです。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
べたな方法ですが Sub msgTest(Optional ByVal myCaller As String = "NA") MsgBox caller End Sub call msgtest → NA call msgtest("are") → are のように呼び出し元で渡してあげるとか・・・。
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7941)
ExcelVBAには,呼び出し元のプロシジャを遡る機能はありません。ボタン操作かどうかを調べる事なら出来ます。 作成例: sub macro1() if typename(application.caller) = "String" then msgbox "from button " & application.caller else msgbox "from other proc" end if end sub
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
呼び出し元プロシージャ名を取得する http://homepage1.nifty.com/rucio/main/dotnet/Samples/dnSampleGetPrevMethodName.htm
お礼
ありがとうございます。 ご指摘のページを見てみました。しかし、どうやら僕が使っているExcel2010では使えないようです。わざわざ教えて下さって、ありがとうございます。
- ShowMeHow
- ベストアンサー率28% (1424/5027)
ボタンを押したときのイベントに何と書いてありますか? (ボタンを押したときに、何らかのプロシージャーが起動されているのでは?)
お礼
ありがとうございます。色々試しましたが、この方法が1番手間はかかりますが、1番確実なようです。 ただ、この方法だと、VBEで呼び出される方に直接ステップインしようとしても出来ません。出来ればステップインを使い、デバッグをしたいのですが、何か好い方法はあるでしょうか?