Excel【シート間移動ボタンのマクロ】を作る

マクロでシート間移動
目次

Excelのマクロで効率化

Excelで複数のシート間を移動するのにシートのタブをクリックすれば各シートに移動できますが、シート数が多いと表示されない場合があり、シート間の移動が面倒になる場合があります。
そんな場合にマクロをボタンに割り当てて簡単にシート間を移動できるボタン(マクロ)を作成してみます。今回は月ごとの現金出納帳シートを作成してマクロで登録したボタンでシート間移動をしてみます。※現金出納帳では10月分になっていますがあまり気にしなくて大丈夫です。

マクロ割り当て

リボンのクイックアクセスバーのカスタマイズ

マクロを使用する前にリボンにボタンアイコンを追加できるリボンアイコンを表示します。
クイックアクセスツールバーのユーザー設定→その他のコマンドから追加します。

クイックアクセスバー

クイックアクセスツールバーから設置します。

その他のコマンド
クイックアクセスバーカスタマイズ

クイックアクセスツールバーのカスタマイズ画面が表示させます。
コマンドの選択→開発タブ→挿入(コントールの挿入)→追加をクリックするとアイコンが追加されます。

開発のボタン追加
クイックアクセスバー追加

クイックアクセスバーはリボンの下にも表示できます

リボンを下に表示
リボンを下に表示した場合

リボンの下側にクイックアクセスバーが表示されアイコン名も表示されます。

フォームコントロール画面

追加した挿入の内容は上記のとおりです。

クイックアクセスバーの設定の準備ができました。

フォームコントロールボタンを使ってみる

クイックアクセスバーに追加した挿入からフォームコントロールのボタンをクリックしてシートにボタンを追加してみましょう。

フォームコントロールを使う
フォームコントロールを使う

挿入をクリックしてフォームコントロールのボタン(フォームコントロール)をクリックしてセル上の任意の場所、大きさでドラックします。

ボタンフォーム追加

ドラックしてマウスの左クリックを離すとマクロの登録画面が表示されます。

マクロ登録

マクロ登録が表示されたらキャンセルをクリックします。ここではマクロ登録はしません。

ボタン完成

Excelファイルに戻るとボタンが表示されますので、ボタンの名称を数字に「1」に変更します。
ここで表示されているシート名を「Sheet1」から半角で数字の「1」に変更します。ここ重要です。

ボタンとシートの名前変更

名前を変更したらこのシートをコピーします。

シートのコピー

シートのコピーを作成します。

追加されたシート

1(2)のシートが作成されます。

ボタンとシート名を2に変更

フォームボタンをコピペして「2」のボタンを作成、シート名「1(2)」のシート名を数字の「2」に変更します。

マクロを記録

シート間を移動するマクロを登録していきます。

2のシート選択

シート「2」を選択します。シート「1」、「2」も全く同じです。

リボンのマクロ

表示→マクロをクリックします。

マクロの記録

マクロの記録をクリックします。

マクロの記録画面

マクロの記録画面が表示されますので任意のマクロ名を入力します。

記録中のマクロ

マクロ記録中はステータスバーに
上記マーク表示されます。

シート1をクリック

マクロ記録マークが表示されたらシート「1」をクリックします。この時点でマクロが記録されますのでこのままマクロの記録終了をします。

リボンマクロ

リボンの表示→マクロをクリックします。

記憶の終了

マクロの記録終了をクリックします。

記憶したマクロを確認する

リボンのマクロ

リボンの表示→マクロをクリックします。

マクロを表示
マクロ画面

一覧にあるMacro1を選択して編集をクリックします。

VisualBasic画面

Microsoft Visual Basic for Applications(以下、VBA)が表示され、標準モジュールのツリーにModule1が表示され、コードが記載されたウインドウが表示されます。これがマクロで記録したコードです。
内容は以下の通りです。

Sub Macro1()
'
' Macro1 Macro
'

'
    Sheets("1").Select
End Sub

Sub Macro1()は宣言文・・End Subは終了文です
ここで必要なのが 「Sheet(”1”).Select」でシートの1を選択したということになります。

' 
' Macro1 Macro
'
'

部分はコメントアウトなので削除しても大丈夫ですので削除します。

Sub Macro1()

    Sheets("1").Select

End Sub

成形して上記の通りして保存します。VBAのウインドウを閉じ、Excelの画面に戻ります。

フォームボタンにマクロを登録する

フォームコントロールボタンにマクロを登録する場合は、ボタンに右クリックしてマクロ登録をクリックします。

マクロの登録

「2」のシートを選択してからマクロ登録してください。

マクロ画面

マクロを登録したMacro1を選択してOKをクリックします。

登録したマクロの確認
シート1に移動

これでマクロの登録は完了しました。

フォームボタンの複製

シートの[1]を選択して作業を行います。

ホームから検索と選択

リボンからホーム→検索と選択をクリックしてオブジェクトの選択をクリックします。

オブジェクト選択
ボーむボタン選択

フォームボタンをマウスでドラックします。

フォームボタン選択中

選択中のフォームボタンをコピペします。

フォームボタンコピペ

6回コピペします。

複製されたフォームボタン

コピペしたフォームボタンをテキトーに横並びにします。

フォームボタンの整列配置

フォームボタンを選択してから図形の書式→配置で上揃えと左右整列をします。
完了したら、リボンのホーム→検索と選択をクリックして、オブジェクトの選択を解除します。

フォームボタン名前変更

フォームボタンを右クリックしてテキスト編集して1から12までフォームボタンの名称を変更します。
ついでにフォームボタンをグループ化をしておきましょう。

VBAでマクロのコードを複製

ここまででフォームボタンが作成できたので、任意のボタンで右クリックしてマクロの登録を選択して
Macro1を選択して編集をクリックしてVBAを起動します。

マクロ画面

Macro1を選択して編集をクリックします。

VisualBasic画面

VBAが立ち上がります。

VBAが立ち上がったらModule1が選択され、先ほど登録したMacro1のコードが記載されています。
これに1行追加してシートを選択したときにどのセルにフォーカスするかを記載します。

Sub Macro1()
    Sheets("1").Select
    Range("A5").Select '←シート「1」の「A5」セルにフォーカスさせる
End Sub
コード変更

記載されているコードを12個コピペします。

コード内容のコピペ

以下の通りにコピペしたコードの内容を修正します。

Sub Macro1()
    Sheets("1").Select
    Range("A5").Select
End Sub
     ↓
Sub Macro2()
    Sheets("2").Select
    Range("A5").Select
End Sub

コピーしたコードのMacro1()とSheets(“1”)の数値をすべて2~12に変更してVBAを終了します。

フォームボタンにマクロを登録

作成したフォームボタンにVBAで作成してマクロを登録します。

マクロの登録
マクロ内容の変更

フォームボタン[2]を右クリックして、マクロの登録をクリックするとマクロの登録画面が表示されるのでフォームボタン[2]→Macro2を登録し、同様にフォームボタン[3]→Macro3を登録していきます。

シートの複製

シートの複製をする前に現時点で[1]と[2]のシートが存在していますので、フォームボタンが複製されていないシートの[2]を削除します。

シートの複製

シートの削除はシートの上で右クリックして削除します。

シートの削除
フォームボタンが表示されていシート

シート[1]に作成したフォームボタンがあること
を確認して複製します。

シートのコピー
移動またはコピー画面
複製されたシート

複数のシートを作成する場合はコピーを作成した後にCtrl+クリックで複数のシートを選択して作成すると一気に作成できます。

シートの名前変更

シートを1(12)まで複製したらシート名を1~12に変更します。
ここまで出来たら各フォームボタンをクリックしてシート間で移動できることを確認します。

セルの内容削除

あとはシートの日付と内容と残高をクリアすれば完成します。

まとめ

マクロは最初の登録が面倒ですが、一度マクロの登録してしまえばシート間の移動が簡単になります。
今回はとても簡単なマクロですが同じようにマクロの記録や登録を行うことで同じ作業を自動化できますのでチャレンジしてみましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次