ボタンに表示されているテキストを取得(Application.Caller)
メニューのシートを作成して、ボタンを配置、そしてボタンにより指定シートに移動する。
よくありますが、ボタン一つずつに別々(移動先のシート毎に)のマクロを作成するのは面倒です、
そこで、
一つのマクロで済ませる方法の紹介です。
Application.Caller
ユーザー定義関数として呼ばれた場合は、数式を入れたセルがRangeオブジェクトで渡されます。
Sub sample()
Select Case TypeName(Application.Caller)
Case "String"
'ボタンから呼ばれた
Case "Range"
Debug.Print "ユーザー定義関数として呼ばれた"
Exit Sub
Case Else
Debug.Print "不明な呼ばれ方"
Exit Sub
End Select
On Error Resume Next
Sheets(ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text).Select
If Err Then
MsgBox "ボタン表示のシートがありません。"
End If
End Sub
このマクロVBAなら、どのボタンでもボタンのテキストと同一のシートに移動出来ます。
これで、クリックされたボタンを特定しています。
これで、クリックされたボタンのテキストを取得しています。
ボタンのテキストと同一のシートが存在しない場合はエラーとなります。
もっとも、最初に作るときだけしか発生しないエラーではありますが。
ぜひ使ってみてください。
ボタンからプロシージャーに引数を渡す
ボタンへ登録する時に、引数を指定することもできます。
'sample2 "Sheet2"'
'Module1.sample2 "Sheet2"'
![マクロ VBA 押されたボタンを取得](image149.jpg)
Private Sub sample2(ByVal arg)
On Error Resume Next
Sheets(arg).Select
If Err Then
MsgBox "ボタン表示のシートがありません。"
End If
End Sub
同じテーマ「マクロVBAサンプル集」の記事
Excelの表をPowerPointへ図として貼り付け
新着記事NEW ・・・新着記事一覧を見る
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.並べ替え(Sort)|VBA入門
10.ブック・シートの選択(Select,Activate)|VBA入門
- ホーム
- マクロVBA応用編
- マクロVBAサンプル集
- ボタンに表示されているテキストを取得(Application.Caller)
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。