シートが多いと他のシートの選択が面倒

Excelのブックにはシートをたくさん作ることが出来ます。作成可能なシート数の上限はメモリ量に依存するため明確な数はありませんが、以下のコードで試してみたら少なくとも私のPCでは2000までは作成できることを確認しました。

このような1000も2000もシートを持つブックはさすがに珍しいとは思いますが、それでも100近くのシートを持つブックは世の中に結構あると思います。実際私も見たことがあります。

そのようなシートが多いブックを使う場合に面倒なのがシートの選択です。シートが大量にあるようなブックの場合、「一覧」などの名前を付けたシートがあってそこから各シートの説明やハイパーリンクを貼っていることがありますが、そもそも「一覧」シートを選択するのにシートタブの左の部分を右クリックしてシートの選択ダイアログで選択する、という操作が面倒です。

一般的には「一覧」シートは一番左に置いてあることが多いと思います。そこで、一番左にぱっと移動するマクロを紹介します。

一番左のシートを選択するには

どのシートからも一番左のシートに移動するためには、一番左のシートをどうやって特定するのか、という点が重要になります。

その特定方法ですが、SheetsコレクションやWorksheetsコレクションの引数に1を設定するだけで特定が可能です。ワークシートだけしか使っていないのであればSheetsコレクションでもWorksheetsコレクションでもどちらも同じ結果になります。グラフシートやマクロシートやダイアログシートを使っている場合は違いがあり、これらのシートはSheetsコレクションにしか含まれません。

一般的にはワークシートだけを使うことの方が多いと思いますのでWorksheetsコレクションでの書き方を紹介します。

1行で一番左のシートを選択可能です。

一番右のシートを選択するには

一番左のシートは「Worksheets(1)」と書けばよかったので簡単ですが、一番右のシートも大して変わりません。

ワークシートの数は「Worksheets.Count」で取得できます。それをそのままWorksheetsコレクションのインデックスとして使えば一番右のシートを意味します。

使い方

上記マクロはすぐに使えることが条件になってきますので、クイックアクセスツールバーやリボンに登録しておくと便利です。

あとはコンテキストメニューに追加しておく方法もあります。