VBAサンプル集
ボタンのテキスト名のシートへ移動(Application.Caller)

ExcelマクロVBAの実用サンプル、エクセルVBA集と解説
最終更新日:2018-06-16

ボタンのテキスト名のシートへ移動(Application.Caller)

メニューのシートを作成して、ボタンを配置、そしてボタンにより指定シートに移動する、
よくありますが、ボタン一つずつに別々(移動先のシート毎に)のマクロを作成するのは面倒です、
そこで、
一つのマクロで済ませる方法の紹介です。


Sub sample()
  Sheets(ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text).Select
End Sub


このマクロVBAなら、どのボタンでもボタンのテキストと同一のシートに移動出来ます。


Application.Caller
これで、クリックされたボタンを特定しています。

ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text
これで、クリックされたボタンのテキストを取得しています。

後は、SheetsのSelectだけです。

注意点としては、
ボタンのテキストと同一のシートが存在しない場合はエラーとなります。
もっとも、最初に作るときだけしか発生しないエラーではありますが。

メニューのシートを作成するときは、とても便利なはずです。
ぜひ使ってみてください。



同じテーマ「マクロVBAサンプル集」の記事

指定セルに名前定義されているか判定する

名前定義は、VBAでは、セル位置の特定において重要な役割を持ちます、あるセルが名前定義されているか判定するVBAになります。ここでは、名前定義されている場合は、その名前定義を削除するVBAサンプルとしています。指定セル範囲が何らかの名前定義に含まれているか Subsample1(rngAsRange) DimnmAsName ForEachnmInNam…
Excel2003(xls)を2007以降(xlsx,xlsm)に変換する(HasVBProject)
Excel2003形式(xls)のファイルを、一括でExcel2007以降形式(xlsx,xlsm)に変換するマクロVBAサンプルコードです。サンプルコードでは、サブフォルダ「Excelファイル」にあるxlsを、マクロ無しならxlsx、マクロ有りならxlsmにして保存しています。
ハイパーリンクからファイルのフルパスを取得する
ハイパーリンクのリンク先ファイル情報を取得しようとすると、なかなか難しいことになります、ハイパーリンクからパスを取得すると相対パスとなり、簡単にはファイル情報を取得出来ません。以下のサンプルでは、ハイパーリンクの設定されているセルの右隣のセルに更新日時を出力しています。
ボタンのテキスト名のシートへ移動(Application.Caller)
Excelの表をPowerPointへ図として貼り付け
PowerPointを作っていると、エクセルの表を挿入したいことが多いです、単発作業なら手作業で十分ですが、定期的にやる場合や、数が多いと大変ですので、マクロで自動化したくなります。Excelの表をPowerPointへ図として貼り付けるVBA Excelの表をPowerPointへ図として貼り付けるVBAの解説 上記は、
VBAで表やグラフをPowerPointへ貼り付ける
エクセルのグラフや表範囲をパワーポイントへ貼り付ける方法の解説です。1つ2つの貼り付けを単発で行うのであれば手作業でも良いですが、何十個も、そして、何回も貼り付けを行うのであればVBAで自動化したいところです。エクセル パワーポイント 表やグラフをPowerPointへ貼り付けるVBA PowerPointを使う準備と保存終了 DimppAppAsNew…
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除
VBAでフォルダを削除するにはRmDirステートメントを使いますが、サブフォルダやファイルが入っている場合は、RmDirはエラーとなります。そこで、サブフォルダやファイルがある場合は、FileSystemObjectを使います。以下のサンプル使用時には、「ツール」→「参照設定」で、「MicrosoftScriptingRuntime」にチェックを付けてく…
Shift_JISのテキストファイルをUTF-8に一括変換
本サイトの文字コードは開設当初からShift_JISでしたが、昨今の事情を考えてUTF-8に変更することにしました。そこで既存記事全てを一括で変換することになり、これをVBAでやりましたので、その時のVBAコードを掲載しておきます。以下のVBAコードはサイトのUTF-8変更にあたり急遽作成したものですが、
VBAコードの全プロシージャー・プロパティ一覧を取得
VBAの開発規模がある程度大きくなってくると、VBAソース管理の必要性を感じることもあると思います。モジュールの数も増えてきて、プロシージャー・プロパティが膨大になってきます。以下は、指定ブックの全モジュールの全プロシージャー・プロパティを一覧にするVBAサンプルです。
数式バーの高さを数式の行数で自動設定
数式バーの高さは、操作で変更しない限り一定の高さのままになっています。通常は1行表示になっている場合が多いと思いますが、その場合、セル内で改行されていると最初の1行しか見ることができません。値の場合はセルに表示されているのであまり問題ありませんが、数式の場合はセル編集にしないと数式の全部を見ることができません。
図形オートシェイプ(Shape)の複数選択
図形オートシェイプを複数選択するVBAについてのサンプルと簡単な解説です。Shapeオブジェクトは非常に複雑で、簡単な操作でもVBAの書き方が分からない場合も多くあります。Shapeの基本については以下を参照してください。


新着記事NEW ・・・新着記事一覧を見る

VBA100本ノック 18本目:名前定義の削除|VBA練習問題100(11月6日)
VBA100本ノック 17本目:重複削除(ユニーク化)|VBA練習問題100(11月6日)
VBA100本ノック 16本目:無駄な改行を削除|VBA練習問題100(11月5日)
VBA100本ノック 15本目:シートの並べ替え|VBA練習問題100(11月4日)
VBA100本ノック 14本目:社外秘シート削除|VBA練習問題100(11月3日)
VBA100本ノック 13本目:文字列の部分フォント|VBA練習問題100(11月1日)
VBA100本ノック 12本目:セル結合を解除|VBA練習問題100(10月31日)
VBA100本ノック 11本目:セル結合の警告|VBA練習問題100(10月30日)
VBA100本ノック 10本目:行の削除|VBA練習問題100(10月29日)
VBA100本ノック 9本目:フィルターコピー|VBA練習問題100(10月28日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.マクロって何?VBAって何?|VBA入門
6.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ