アプリ版:「スタンプのみでお礼する」機能のリリースについて

MS-EXCEL2010 VBAで或るプロシージャの呼び出し元が、プロシージャかボタン操作か、また、プロシージャならプロシージャ名、ボタン操作ならボタン名を呼び出されたプロシージャ内で知る方法は有るのでしょうか。

if文で操作を変えたいのです。よろしくお願いします。

A 回答 (4件)

ボタンを押したときのイベントに何と書いてありますか?


(ボタンを押したときに、何らかのプロシージャーが起動されているのでは?)
    • good
    • 0

呼び出し元プロシージャ名を取得する


http://homepage1.nifty.com/rucio/main/dotnet/Sam …
    • good
    • 0
この回答へのお礼

ありがとうございます。

ご指摘のページを見てみました。しかし、どうやら僕が使っているExcel2010では使えないようです。わざわざ教えて下さって、ありがとうございます。

お礼日時:2012/08/15 13:34

ExcelVBAには,呼び出し元のプロシジャを遡る機能はありません。

ボタン操作かどうかを調べる事なら出来ます。

作成例:
sub macro1()
 if typename(application.caller) = "String" then
 msgbox "from button " & application.caller
 else
 msgbox "from other proc"
 end if
end sub
    • good
    • 2

べたな方法ですが


Sub msgTest(Optional ByVal myCaller As String = "NA")
MsgBox caller
End Sub

call msgtest → NA
call msgtest("are") → are
のように呼び出し元で渡してあげるとか・・・。
    • good
    • 0
この回答へのお礼

ありがとうございます。色々試しましたが、この方法が1番手間はかかりますが、1番確実なようです。

ただ、この方法だと、VBEで呼び出される方に直接ステップインしようとしても出来ません。出来ればステップインを使い、デバッグをしたいのですが、何か好い方法はあるでしょうか?

お礼日時:2012/08/18 16:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A