
エクセル2000です。
マクロをワークシート上に貼ったフォームのボタンなどから呼び出す場合、ボタンの名前はApllication.Callerでわかるので、同じ一つのマクロでも呼び出されたボタンに応じた動きができるのですが、他のマクロから呼び出した場合、Apllication.Callerではエラーになってしまいます。
例
Sub test()
x = Application.Caller
If x = "AAA" Then MsgBox "AAA"
If x = "BBB" Then MsgBox "BBB"
Cells(1, 1).Value = "1"
End Sub
他のマクロから呼び出された場合、エラーとしないためにはOn Error Resume Next以外ではどのようにすればいいでしょうか?
No.1ベストアンサー
- 回答日時:
こんにちは。
maruru01です。Excel2000のVBAのヘルプで、「Caller プロパティの使用例」に載っている方法です。
TypeName関数で分岐処理をすればいいと思います。
Select Case TypeName(Application.Caller)
Case "Range"
v = Application.Caller.Address
Case "String"
v = Application.Caller
Case "Error"
v = "エラー"
Case Else
v = "不明です"
End Select
MsgBox "Visual Basic を呼び出した方法 = " & v
早速ありがとうございました。
なるほどTypeName関数ですか。こんなのがあるんですね。勉強になります。
やってみたら他のマクロから呼び出すと「エラー」になることがわかり、使えました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
複数のマクロボタンをまとめて...
-
エクセル ボタンに設定したマク...
-
Excel マクロの編集がグレーに...
-
LDPlayerのマクロの編集方法を...
-
【マクロ】スクショ印刷がうま...
-
マクロ 2行ごとの並び替えについて
-
マクロでエクセルで選択した範...
-
エクセルでマクロ(Excel 4.0)...
-
番号を振るマクロを教えてください
-
桁数順に並び替え VBA
-
エクセル2010を使い、ボタンを...
-
エクセルで選択列の決められた...
-
エクセル マクロ 連続したデー...
-
パソコンのマクロを勉強したい...
-
個人用マクロブックの活用について
-
ワード2010で画像を表中にマク...
-
エクセルだけで宛名を印刷でき...
-
パワーポイントのオブジェクト...
-
Private Sub Workbook_open()で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
複数のマクロボタンをまとめて...
-
エクセル ボタンに設定したマク...
-
Excelのマクロでボタンを押すと...
-
エクセルで、「いいね」のよう...
-
エクセルでマクロ(Excel 4.0)...
-
エクセル マクロ名にブック名...
-
エクセルの、記録を終了したマ...
-
エクセルの表を複数枚印刷した...
-
Excelマクロで、稼働中のマクロ...
-
(Excel VBA)シートコピー時マ...
-
エクセルマクロで、別のブック...
-
エクセルで明日の日付を表示す...
-
Excelマクロをバックグラウンド...
-
Excelのマクロ名の並び順の法則...
-
LDPlayerのマクロの編集方法を...
-
マクロ実行ボタンを自動削除したい
-
EXCELのマクロが他のパソコンで...
-
他のBOOKにマクロを反映させな...
おすすめ情報