Excelマクロ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サンプル集」の記事

エクセルのアイコン取得(FaceID)

エクセル内のアイコンを取得します。「右クリックメニューの変更」のFaceIdとして使用します。2003までならツールバーが追加されます。2007以降ではリボンのアドインの中に追加されます。ConststartNoAsInteger=1'開始番号を指定 ConststopNoAsInteger=50'終了番号を指定 この数値を変更して実行して下さい。
素数を求めるマクロ
素数とは、1と自分自身以外に正の約数を持たない、1でない自然数のことです、この素数を求めて、シートに出力するマクロになります。特に何かに使えると言う事もないので、PCの計算能力って、どの程度なのかを実感してみるくらいの事でしょうか。注意 このマクロはオーバーフローするまで停止しません。
入力規則のリスト入力を確認する
入力規則のリスト入力は、Excelの機能の中でも頻繁に使われる機能です、目的の1つとして、リスト内のデータのみの入力に限定したいと言う事がありますが、コピペで値の貼り付けを行うと、どんな値も入力出来てしまいます。結果として、意図しない値が入力されてしまう事があります。
配色を使用したカラー設定を固定カラーに再設定
Excel2007以降なら配色を選択して作成した場合、作成したシートを他のブックに移すと、色が変わってしまいます、そこで、配色ではなく、RGB値で色を再設定することで、元々の色をそのままにして、他のブックに移すことが出来ます。以下は、この目的で色を再設定するマクロVBAになります。
指定セルに名前定義されているか判定する
名前定義はVBAではセル位置の特定において重要な役割を持ちますあるセルが名前定義されているか判定するVBAになります。Subsample1(rngAsRange) DimnmAsName ForEachnmInNames IfNotIntersect(rng,Range(nm.RefersTo))Then nm.Delete EndIf Next End…
Excel2003(xls)を2007以降(xlsx,xlsm)に変換する(HasVBProject)
Excel2003形式(xls)のファイルを、一括でExcel2007以降形式(xlsx,xlsm)に変換するマクロVBAサンプルコードです。サンプルコードでは、サブフォルダ「Excelファイル」にあるxlsを、マクロ無しならxlsx、マクロ有りならxlsmにして保存しています。
ハイパーリンクからファイルのフルパスを取得する
ハイパーリンクのリンク先ファイル情報を取得しようとすると、なかなか難しいことになります、ハイパーリンクからパスを取得すると相対パスとなり、簡単にはファイル情報を取得出来ません。以下のサンプルでは、ハイパーリンクの設定されているセルの右隣のセルに更新日時を出力しています。
ボタンのテキスト名のシートへ移動(Application.Caller)
Excelの表をPowerPointへ図として貼り付け
PowerPointを作っていると、エクセルの表を挿入したいことが多いです、単発作業なら手作業で十分ですが、定期的にやる場合や、数が多いと大変ですので、マクロで自動化したくなります。上記は、まずは最低限のコードです。セル範囲をコピーして、拡張メタファイルとして貼り付けています。
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除
VBAでフォルダを削除するにはRmDirステートメントを使いますがサブフォルダやファイルが入っている場合はRmDirはエラーとなりますそこでサブフォルダやファイルがある場合はFileSystemObjectを使います。以下のサンプル使用時には「ツール」→「参照設定」で「MicrosoftScriptingRuntime」にチェックを付けてください。
Shift_JISのテキストファイルをUTF-8に一括変換
本サイトの文字コードは開設当初からShift_JISでしたが昨今の事情を考えてUTF-8に変更することにしました。そこで既存記事全てを一括で変換することになりこれをVBAでやりましたのでその時のVBAコードを掲載しておきます。以下のVBAコードはサイトのUTF-8変更にあたり急遽作成したものですが


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

Byte配列と文字コード関数について|VBA技術解説(8月20日)
PowerQueryの強力な機能をVBAから利用する方法|VBA技術解説(8月4日)
練習問題31(セル結合を解除して値を埋める)|VBA練習問題(7月30日)
練習問題30(マトリックス→リスト形式)|VBA練習問題(7月25日)
Applicationを省略できるApplicationのメソッド・プロパティ一覧|VBA技術解説(7月22日)
コレクション(Collection)の並べ替え(Sort)に対応するクラス|VBA技術解説(7月20日)
CSVの読み込み方法(ジャグ配列)|VBAサンプル集(7月15日)
その他のExcel機能(グループ化、重複の削除、オートフィル等)|VBA入門(7月14日)
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス|VBA技術解説(7月6日)
オートフィルタを退避回復するVBAクラス|VBA技術解説(7月6日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.ひらがな⇔カタカナの変換|エクセル基本操作
10.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説



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

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


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




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