先頭のシートを選択するショートカットを作成

この記事を読むのに必要な時間は約 8 分です。

 

シートが大量にあるエクセルで、一気に先頭のシートへジャンプしたいってことありませんか?

 

エクセルの左下をCtrl + 左クリックとか、右クリックして任意のシートを選択する方法もありますが、
今回はVBAでショートカットキーを作ってみたいと思います。

 

VBAと言っても、ソースコードは数行だけ。
めちゃくちゃ簡単に出来ちゃいます。

スポンサーリンク

たくさんシートがあると、先頭のシートに戻るのが面倒

昨日の投稿で、先頭の目次シート「Index」から、ハイパーリンクで任意のシートへ移動できる方法を紹介しました。

 

 

この方法で目的のシートへ行くのは楽になりました。

 

でも、戻ってくるのは大変です。

VBAで先頭のシートを選択するショートカット作成

 

VBAでショートカットキーを作る

マウスも使わずサクッと先頭のシートを選択できるショートカットキーを作ります。

コーディングの準備

拡張子が「xlsx」のままだとマクロが保存できません。

 

「xlsm」または「xls」として名前を付けて保存します。
「xls」の場合、最大65536行だったり、横側も256列だったりと少ないので注意してくださいね。

VBAで先頭のシートを選択するショートカット作成

ソースコードを書く

「Alt + F11」または、開発タブの「Visual Basic」ボタンを押して、VBのソースコードを書くエディターを開きます。

 

開発者タブの表示方法はこちら。

 

VBAで先頭のシートを選択するショートカット作成

 

「ThisWorkbook」をダブルクリックします。

VBAで先頭のシートを選択するショートカット作成

 

ソースコードを入力するウインドウが表示されました。

 

最初からOption Explicit と表示されているのは、変数の宣言を強制するオプションを設定しているためです。
とりあえず気にしないで大丈夫です。

VBAで先頭のシートを選択するショートカット作成

 

ソースコードはこちら

このソースコードを貼り付けてみてください。

Option Explicit

Public Sub SelectFirstSheet()
    ThisWorkbook.Sheets(1).Select
    Range("A1").Select
End Sub

「Sheets(1)」というのは、1番目のシートという意味です。

 

「.Select」で、シートのオブジェクトが選択されます。

VBAで先頭のシートを選択するショートカット作成

 

ショートカットキーを登録

ソースコードは出来たので、ショートカットキーを登録します。

 

開発者タブ内の「マクロ」をクリックして、

VBAで先頭のシートを選択するショートカット作成

 

「オプション」をクリックします。

VBAで先頭のシートを選択するショートカットキー作成

 

「マクロオプション」の画面でショートカットキーを登録します。

 

個人的には、シートをジャンプするので「j」がおススメですね。

VBAで先頭のシートを選択するショートカットキー作成

 

既に他のショートカットキーとして割り当てているという方には、Shiftを押しながら入力して、「Ctrl + Shift + j」というようなショートカットキーもあります。

VBAで先頭のシートを選択するショートカットキー作成

 

「OK」ボタンで保存し、

VBAで先頭のシートを選択するショートカットキー作成

 

元の「マクロ」画面も閉じます。

VBAで先頭のシートを選択するショートカットキー作成

作ったショートカットキーを実行してみる

では早速実行してみます。

VBAで先頭のシートを選択するショートカットキー作成

 

一瞬で先頭のシート「Index」が選択されました。

VBAで先頭のシートを選択するショートカットキー作成

 

ソースコードが短すぎて、エラーになる気がしないかもしれませんが、実は、シート名というちょっとした落とし穴が潜んでいます。

ソースコードにシート名を書くのはおススメ出来ない

カッコ()の中に、ダブルクォーテーション「””」で囲んでシート名を書くことも可能です。

 

注意すべきは、シート名なんて変更されてしまう可能性があること。

VBAで先頭のシートを選択するショートカットキー作成

 

ソースコード上では「Sheets(“Index”)」に変更しています。
試しにシート名を変更して、実行してみたいと思います。

VBAで先頭のシートを選択するショートカットキー作成

 

どれも分かる人には分かるIndexではありますが、VBAのエラーメッセージが表示されてしまいました。

 

「Sheets(1)」と表記しておけば、シート名に関わらず1番目のシートを選択してくれます。

先頭のシートが非表示の場合の対処法

実はまだ落とし穴がありまして、先頭シートが非表示だったらエラーになってしまいます。

 

表示されていないままのシートを選択なんて出来ないですから。

先頭シートが非表示の場合にも対応したソースコード

Public Sub SelectFirstSheet2()
    Dim i As Integer

    For i = 1 To Sheets.Count
        If ThisWorkbook.Sheets(i).Visible = True Then
            ThisWorkbook.Sheets(i).Select
            Range("A1").Select
            Exit Sub
        End If
    Next i
End Sub

 

簡単に解説すると、

  1. シート番号1からループして
  2. 「.Visible = True」の場合のシートを選択
  3. ついでにA1セルも選択
  4. 関数を抜ける

 

というソースコードです。

VBAで先頭のシートを選択、非表示対応

 

さっそく先頭のシートを非表示にして、実行してみたいと思います。

VBAで先頭のシートを選択、非表示対応

 

ショートカットキーは、せっかくなので「Ctrl + Shift + J」を登録。

VBAで先頭のシートを選択、非表示対応

 

押してみます!!

 

エラーになることなく、表示されている中での先頭のシートが無事選択されました。

VBAで先頭のシートを選択、非表示対応

スポンサーリンク

まとめ:エクセルVBAで、先頭のシートを選択するショートカットキー作成

エクセルVBAで、先頭のシートへジャンプするショートカットキーの作り方でした。

 

とりあえずやってみるには、ソースコードをコピペしてショートカットキーを割り当てて実行するだけです。

 

もしも、開発者タブの表示方法が分からなかったら、こちらの記事を参考にしてみてくださいね。

 

 

最後までお読みいただき、ありがとうございました。