Excelのブックを保存するとき、シートごとにカーソル(アクティブセル)の位置がバラバラだと、次に開いた人がどこを見ればいいのか一瞬迷います。私自身、資料を受け取って開いた瞬間に画面の真ん中あたりが表示されて「あれ、ここが起点なの?」と戸惑った経験が何度もあります。
全部のシートがセルA1で揃っていると、それだけで整った印象になりますし、開いた側もストレスなく中身を追えます。ファイルを共有したり納品したりする場面では、この小さな気配りが地味に効いてきます。
シートが数枚なら手作業でA1に戻してもたいした手間ではありません。ただ、案件によってはシートが数十枚、ときには百枚を超えることもあります。そうなると一枚ずつ揃えるのは正直しんどい作業です。
そこで役立つのが、全シートのカーソルを一度にA1へ揃えるやり方です。この記事では、マクロを使わない手動の方法と、VBAマクロで一気に片付ける方法の両方を紹介します。「マクロは触ったことがない」という方でも、コードをコピーして貼るだけで動くので身構えなくて大丈夫です。
マクロを使わずに全シートのカーソルをA1へ揃える
まずは、プログラムを一切使わない手動の方法です。シートの枚数がそこまで多くないなら、こちらのほうが手軽です。
ポイントは、シートを「作業グループ」としてまとめて選択してから操作すること。グループ化した状態でセルを移動すると、選択中のすべてのシートに同じ操作が反映されます。
作業グループを使った手順
- 先頭のシート見出し(タブ)をクリックします。
- 右端のシート見出しを Shiftキーを押しながらクリック します。これで先頭から末尾までのシートがまとめて選択され、作業グループになります(すべてのシートが対象なら、いずれかのシート見出しを右クリックして「すべてのシートを選択」を選んでも同じです)。
- その状態で Ctrl + Home を押します。アクティブなシートのカーソルがA1へ移動し、グループ化された全シートにも同じ動きが反映されます。
- 最後に、先頭シートの見出しをクリックしてグループ化を解除します。解除しないと、以降の編集がすべてのシートに反映されてしまうので忘れずに。
この後にブックを保存すれば、全シートがA1で揃った状態で残せます。Ctrl + Home はカーソルをシートの左上(通常はA1)へ一発で戻すショートカットなので、単独でも覚えておくと便利です。
VBAマクロで全シートのカーソルを一括でA1にする
シートが大量にある場合や、この作業を何度も繰り返す場合は、マクロにまかせたほうが速くて確実です。ExcelのマクロはVBA(Visual Basic for Applications)という言語で書きますが、今回はコピペで動くシンプルなものなので、中身がわからなくても実行できます。
実行すると、ブック内のすべてのシートを順番にたどってカーソルをA1へ移動し、最後は先頭シートに戻して終わります。
マクロを使う手順
1. カーソルを揃えたいブックを開く
Excelを起動し、対象のブック(ファイル)を開いておきます。
2. VBE(Visual Basic Editor)を起動する
マクロを書き込むエディターを開きます。キーボードで Altキー と F11キー を同時に押す と、VBEが立ち上がります。
3. 標準モジュールを追加する
VBEの上部メニューから 「挿入」→「標準モジュール」 を選びます。すると、コードを書くための白い画面(モジュール)が開きます。
4. コードを貼り付ける
下のコードを、開いたモジュール画面にそのままコピー&ペーストします。
Option Explicit
Sub Cursor_A1()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Select
Application.Goto ws.Range("A1"), True
Next ws
Worksheets(1).Select
MsgBox "全てのシートのカーソルをA1に移動しました"
End Sub
5. マクロを実行する
コードを書いたモジュール内にカーソルを置いた状態で F5キー を押すと、そのまま実行されます。メニューから実行したい場合は、上部の 「実行」→「Sub/ユーザーフォームの実行」 を選び、一覧から「Cursor_A1」を選んで実行します。
6. 完了メッセージを確認する
正常に終わると「全てのシートのカーソルをA1に移動しました」というメッセージが表示されます。これで全シートのカーソルがA1に揃い、画面も左上までスクロールした状態になっています。あとはブックを保存すればOKです。
コードの中身を簡単に説明
やっていることは、すべてのシートを順に選び、それぞれでA1へ移動しているだけです。各行の役割は次のとおりです。
- Option Explicit:変数を使う前に必ず宣言するよう強制する一文です。打ち間違いによるミスに気づきやすくなります。
- Dim ws As Worksheet:シートを入れておく変数「ws」を用意しています。
- For Each ws In Worksheets:ブック内のすべてのシートを一枚ずつ順番に処理するループです。
- ws.Select:処理中のシートを選択します。
- Application.Goto ws.Range(“A1”), True:そのシートのA1へ移動します。二つ目の True で画面も左上までスクロールするため、カーソルだけA1で画面は下のほう、というズレを防げます。
- Next ws:次のシートへ進み、すべて終わるまで繰り返します。
- Worksheets(1).Select:最後に先頭シートを選び直します。これがないと最後のシートを開いた状態で保存されてしまいます。
- MsgBox …:処理が終わったことを知らせるメッセージを出します。
なお、このマクロは 非表示のシートがあるとエラーになります。非表示のシートは選択できないためです。実行前にすべてのシートを表示しておくか、非表示シートがある場合はその点を踏まえて使ってください。
マクロってそもそも何?という方へ
マクロは、Excelでよくやる操作をまとめて自動化する仕組みです。同じ作業を何度も繰り返すときや、大量のデータをさばくときに使うと、手作業では考えられない速さで片付きます。
中身はVBAというプログラミング言語で書かれていますが、今回のようにできあがったコードを貼り付けて使う分には、言語を覚える必要はありません。まずはコピペで動かしてみて、慣れてきたら少しずつ中身を読んでいく、くらいの気持ちで十分です。
マクロを実行できるようにする設定
Excelは初期状態だとセキュリティのためマクロがブロックされていることがあります。マクロ付きのファイル(.xlsm)を開いたときに黄色い警告バーが出たら、そこの「コンテンツの有効化」を押せばそのブックでマクロが使えるようになります。
設定から確認・変更したい場合は、次の場所を開きます。
- 「ファイル」タブ →「オプション」を開きます。
- 左側の「トラスト センター」を選び、「トラスト センターの設定」ボタンを押します。
- 「マクロの設定」を開き、動作を選びます。
- 「OK」で閉じます。
基本は「警告して、VBA マクロを無効にする」のままにしておき、信頼できるファイルだけ警告バーから有効化するのが安全です。「すべてのマクロを有効にする(推奨しません)」は、出所のわからないファイルを開くと悪意あるマクロまで動いてしまうので、常用は避けてください。
マクロが活きるほかの場面
マクロを覚えると、手作業だと時間のかかる操作をまとめて片付けられるようになります。今回のカーソル揃えはほんの一例で、たとえば次のような作業とも相性がいいです。
- 毎月決まった形のレポート作成
- データの整形や更新の自動化
- 複数シートの一括コピーや削除
- グラフや表の自動作成
- まとまったデータの一括集計
どれも「毎回同じ手順を踏んでいるな」と感じる作業ほど、マクロにする価値があります。
まとめ
ブック内の全シートのカーソルを一括でA1へ揃える方法として、作業グループを使う手動のやり方と、VBAマクロで一気に処理するやり方を紹介しました。
シートが少なければ作業グループ+Ctrl + Home で十分ですし、枚数が多かったり繰り返す作業なら、マクロにまかせるほうが速くて確実です。押さえておきたいのは次の点です。
- 手動なら、Shiftクリックで全シートを作業グループにしてから Ctrl + Home。終わったら必ずグループ化を解除する。
- マクロは、最後に先頭シートへ戻す一行を入れておくと保存時の見栄えが整う。
- マクロ実行時は非表示シートがあるとエラーになるので、事前に表示しておく。
自分の使う頻度に合わせて、手動とマクロを使い分けてみてください。