この記事を読むのに必要な時間は約 7 分です。
シートが大量にあるエクセルで、一気に先頭のシートへジャンプしたいってことありませんか?
エクセルの左下をCtrl + 左クリックとか、右クリックして任意のシートを選択する方法もありますが、
今回はVBAでショートカットキーを作ってみたいと思います。
VBAと言っても、ソースコードは数行だけ。
めちゃくちゃ簡単に出来ちゃいます。
目次(リンク)
たくさんシートがあると、先頭のシートに戻るのが面倒
昨日の投稿で、先頭の目次シート「Index」から、ハイパーリンクで任意のシートへ移動できる方法を紹介しました。
この方法で目的のシートへ行くのは楽になりました。
でも、戻ってくるのは大変です。
VBAでショートカットキーを作る
マウスも使わずサクッと先頭のシートを選択できるショートカットキーを作ります。
コーディングの準備
拡張子が「xlsx」のままだとマクロが保存できません。
「xlsm」または「xls」として名前を付けて保存します。
「xls」の場合、最大65536行だったり、横側も256列だったりと少ないので注意してくださいね。
ソースコードを書く
「Alt + F11」または、開発タブの「Visual Basic」ボタンを押して、VBのソースコードを書くエディターを開きます。
開発者タブの表示方法はこちら。
「ThisWorkbook」をダブルクリックします。
ソースコードを入力するウインドウが表示されました。
最初からOption Explicit と表示されているのは、変数の宣言を強制するオプションを設定しているためです。
とりあえず気にしないで大丈夫です。
ソースコードはこちら
このソースコードを貼り付けてみてください。
1 2 3 4 5 6 |
Option Explicit Public Sub SelectFirstSheet() ThisWorkbook.Sheets(1).Select Range("A1").Select End Sub |
「Sheets(1)」というのは、1番目のシートという意味です。
「.Select」で、シートのオブジェクトが選択されます。
ショートカットキーを登録
ソースコードは出来たので、ショートカットキーを登録します。
開発者タブ内の「マクロ」をクリックして、
「オプション」をクリックします。
「マクロオプション」の画面でショートカットキーを登録します。
個人的には、シートをジャンプするので「j」がおススメですね。
既に他のショートカットキーとして割り当てているという方には、Shiftを押しながら入力して、「Ctrl + Shift + j」というようなショートカットキーもあります。
「OK」ボタンで保存し、
元の「マクロ」画面も閉じます。
作ったショートカットキーを実行してみる
では早速実行してみます。
一瞬で先頭のシート「Index」が選択されました。
ソースコードが短すぎて、エラーになる気がしないかもしれませんが、実は、シート名というちょっとした落とし穴が潜んでいます。
ソースコードにシート名を書くのはおススメ出来ない
カッコ()の中に、ダブルクォーテーション「””」で囲んでシート名を書くことも可能です。
注意すべきは、シート名なんて変更されてしまう可能性があること。
ソースコード上では「Sheets(“Index”)」に変更しています。
試しにシート名を変更して、実行してみたいと思います。
どれも分かる人には分かるIndexではありますが、VBAのエラーメッセージが表示されてしまいました。
「Sheets(1)」と表記しておけば、シート名に関わらず1番目のシートを選択してくれます。
先頭のシートが非表示の場合の対処法
実はまだ落とし穴がありまして、先頭シートが非表示だったらエラーになってしまいます。
表示されていないままのシートを選択なんて出来ないですから。
先頭シートが非表示の場合にも対応したソースコード
1 2 3 4 5 6 7 8 9 10 11 |
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からループして
- 「.Visible = True」の場合のシートを選択
- ついでにA1セルも選択
- 関数を抜ける
というソースコードです。
さっそく先頭のシートを非表示にして、実行してみたいと思います。
ショートカットキーは、せっかくなので「Ctrl + Shift + J」を登録。
押してみます!!
エラーになることなく、表示されている中での先頭のシートが無事選択されました。
まとめ:エクセルVBAで、先頭のシートを選択するショートカットキー作成
エクセルVBAで、先頭のシートへジャンプするショートカットキーの作り方でした。
とりあえずやってみるには、ソースコードをコピペしてショートカットキーを割り当てて実行するだけです。
もしも、開発者タブの表示方法が分からなかったら、こちらの記事を参考にしてみてくださいね。
最後までお読みいただき、ありがとうございました。