VBA全シートA1でセル選択して、最初のシートを表示するマクロ

  • 2020年3月30日
  • 2020年3月31日
  • 技術

 

仕事でExcelを使っている人は多いと思います。

そして、Excelを仕事で使っていると「全てのシートをA1に合わせて、表紙を選択した状態にして保存する」ってことはよく言われるかと思います。

 

2、3シートならまだしも、10シートとかあるようなExcelブックを手動でA1に合わせていくってぶっちゃけ、めんどくさくないですか?

 

今回はそのめんどくさいをExcelのマクロで自動化しましょうって記事になります。
なくても別に困らないけど、あったら便利。
ちょっとでも使うと、ないのは考えられないというツールになります。

さらに、どのブックでも使えるようにアドイン化しちゃいましょうという記事になります。

 

 

1、A1にそろえるマクロ

 

特に難しくはありません。

以下を「Visual basic Editor」に貼り付けるだけです。

 

ちなみに私は、いつも標準モジュールを追加してプログラムを書きます。
以下のサンプルは全て標準モジュールのデフォルトである「Module1」という体で話を進めていきます。

Sub scrollToA1()
Dim i As Long
Application.ScreenUpdating = False
With ActiveWorkbook
'各シートそれぞれでA1にカーソルを移動する
    For i = 1 To Worksheets.Count
    
        .Sheets(i).Select
        .Sheets(i).Range("A1").Select
        ActiveWindow.ScrollColumn = 1
        ActiveWindow.ScrollRow = 1

    Next
    '最後に1枚目のシートに移動して終了
    .Sheets(1).Select
End With
Application.ScreenUpdating = True
End Sub

 

これで、全てのシートでA1にスクロールした上でA1を選択し、最初のシートを表示します。

ズーム倍率を100%に戻したりするなどはありませんので、必要であればカスタマイズしてください。

 

 

2、アドイン化して、他のブックでも使えるように

 

1で全てのシートでA1にスクロールした上でA1を選択し、最初のシートを表示するマクロは作成しました。

ですが、これだけだと正直使い勝手があまりよろしくないんですよね。

 

マクロがあるブックはこの機能が使えますが、他のブックには使えません。
他のブックのフルパスを記載して、それを取得して実行するっていうのも正直、手間です。

 

そこで、Excelアドインを作成して、他のブックでもこのマクロを簡単に使えるようにしましょう。

Excelアドインとは簡単に言うと、後付けで便利な機能を追加できるよってものです。

 

1、アドインとして保存。

 

先ほど作ったマクロを「名前を付けて保存」→拡張子を「.xlam」を選択→保存

 

拡張子を「.xlam」に選択すると「Microsoft\AddIns」が自動で選択されるかと思います。
保存先はそのままで大丈夫です。アドインとして認識するのが「AddIns」フォルダとなるため。

 

2、アドインを有効化。

 

「開発」タブ→「アドイン」を選択
※Excelのバージョンによっては「アドイン」ではなく「Excelアドイン」の場合もあります。私はExcel2010を使っています。

 

そうすると、有効なアドイン一覧が出てくるので、先ほど作ったアドインにチェックを入れて有効化。

 

3、アドインを1クリックで実行できるようにする

 

Excelの左上に「クイックアクセスツールバー」というものがあります。
下の画像です。

 

ここから「その他のコマンド」を選択。

 

コマンドの選択で「マクロ」を選択。
先ほど作ったマクロを追加してOKを押します。

 

「クイックアクセスツールバー」に先ほど作ったマクロが登録され、1クリックでA1にそろえることができるようになりました!

 

 

 

3、ショートカットキーを設定して更に便利に!

 

上記の手順でA1を選択して、表紙を表示するマクロが1クリックで実行できるようになりました。
これをショートカットキーに登録してしまうと、更に使いやすいものとなります。

 

これも手順としては簡単です。

適当にExcelブックを開き「開発」タブ→「Visual Basic」を開きます
先ほど保存した「.xlam」が見れるはずですので、それの「ThisWorkbook」オブジェクトに以下を貼り付けましょう。

'ブックを開いたときにショートカットキーを設定する。
Sub Workbook_Open()
Application.OnKey "%~", "scrollToA1"
Application.OnKey "%{ENTER}", "scrollToA1"
End Sub

'ブックを閉じたときにショートカットキー設定を解除する。
Sub Workbook_Close()
Application.OnKey "%~"
Application.OnKey "%{ENTER}"
End Sub

※「ThisWorkbook」に貼り付けないと、設定したショートカットキーがうまく動作しません。
 「Module1」などに貼り付けると動作しませんので、ご注意ください。

 

上記を貼り付けることで「Alt+Enter」、「Alt+Enter(テンキーのほう)」でA1にそろえるマクロが実行できるようになります。
ショートカットキーを変更したい場合は適宜変更してください。

 

便利なので、ぜひ試してみてください!

 

最後に

 

意外とめんどうな「A1にそろえる」作業。

マクロで自動化してみませんか?

 

このあと、ショートカットキーに登録するやりかたも書いていこうと思っています。

 

以上。ありがとうございました!