【Excel】PERSONAL.XLSBにマクロ保存して、どのファイルでも自作マクロを使えるようにする

※本記事は広告を含みます

「このマクロ、他のExcelファイルでも使えるようにしたいなあ」ってのを解決する手段がコレです。

通常、Excelマクロ(VBA)は作成したブック(ファイル)内に保存されるため、別のファイルで同じマクロを使いたい場合は、マクロが保存されているファイルを開いておく必要があります。

しかし、「個人用マクロブック(PERSONAL.XLSB)」にマクロを保存しておけば、Excelを開いている時はいつでも、どのファイルからでもそのマクロを呼び出せるようになります。

今回は、この「PERSONAL.XLSB」の作り方と、便利な使い方について解説しようと思います。

「PERSONAL.XLSB(個人用マクロ ブック)」とは?

PERSONAL.XLSB(個人用マクロ ブック)は、Excelを起動した際に「裏側(非表示)」で自動的に開かれる特別なファイルです。

このファイルの中にマクロのコードを保存しておけば、現在作業しているExcelファイルが何であっても、保存したマクロを呼び出して実行することができます。
「セルの書式を整える」「選択範囲の空白行を削除する」など、日常的にどんなファイルでも行っているような定型作業を自動化するマクロを入れておくのに最適です。

PERSONAL.XLSBの作り方

実は、初期状態ではパソコン内にPERSONAL.XLSBは存在しません。
一度「個人用マクロ ブック」を指定してマクロの記録を行うことで、自動的に作成されます。
初期ではこんな感じです↓
C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Excel\XLSTART

Pasted image 20260303184419.png

作成手順

  1. Excelを開き、リボンの「表示」タブ(または「開発」タブ)にある「マクロ」から「マクロの記録」をクリックします。
Pasted image 20260303184513.png
  1. 「マクロの記録」ダイアログが表示されたら、「マクロの保存先」を「個人用マクロ ブック」に変更します。(マクロ名などはなんでも大丈夫です)
Pasted image 20260303184544.png
  1. 「OK」をクリックすると、マクロの記録が開始されます。
  2. 適当なセルを1つクリックするなど、何でもいいので1つ操作を行います。
  3. 再度「マクロ」メニューから「記録終了」をクリックします。
Pasted image 20260303184619.png

これでPERSONAL.XLSBが作成されました!

Pasted image 20260303184716.png

作成したPERSONAL.XLSBにマクロを登録・編集する

VBAエディタを開いて、実際に使いたいマクロのコードを書き込んでみましょう。

  1. Alt + F11キーを押して、VBE(Visual Basic Editor)を開きます。
  2. 左側の「プロジェクト エクスプローラー」を見ると、VBAProject (PERSONAL.XLSB) が追加されていることがわかります。
Pasted image 20260303184807.png
  1. その中の 標準モジュール -> Module1 をダブルクリックして開きます。
  2. 先ほど記録したダミーのマクロ(Sub Macro1() なと)が書かれているので、それを消して、自分がいつも使いたいマクロのコードを貼り付けます。
Pasted image 20260303184841.png

これで登録は完了です。
なお、今回よくみるやつを置いてみました。A1セルを選択した状態で揃えるものです。

Sub ResetAllSheetsToHome()
    Dim ws As Worksheet
    
    ' 高速化設定
    On Error GoTo ErrorHandler
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    ' 「ThisWorkbook」を「ActiveWorkbook」に変更!
    ' これで今開いているブックが対象になるよ
    For Each ws In ActiveWorkbook.Worksheets
        ' 非表示シートをスキップ
        If ws.Visible = xlSheetVisible Then
            ws.Activate
            
            ' A1を選択(これだけでもスクロールは戻るよ)
            ws.Range("A1").Select
            
            ' 念のためスクロール位置もリセット
            With ActiveWindow
                .ScrollRow = 1
                .ScrollColumn = 1
            End With
        End If
    Next ws

CleanUp:
    ' 最後に1番左の表示シートを選択
    Dim firstWs As Worksheet
    For Each firstWs In ActiveWorkbook.Worksheets
        If firstWs.Visible = xlSheetVisible Then
            firstWs.Activate
            Exit For
        End If
    Next firstWs
    
    ' 設定を元に戻す
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    
    ' 動いたことがわかるように音かメッセージを出す
    MsgBox "A1に戻したよ!"
    Exit Sub

ErrorHandler:
    MsgBox "エラーが出ちゃった: " & Err.Description
    Resume CleanUp
End Sub

クイックアクセスツールバーに登録すると良き

せっかくどこでも使えるマクロを作ったなら、実行もワンクリックでできるようにするとさらに便利です。Excelの画面左上にある「クイックアクセスツールバー」にマクロのボタンを追加しましょう。

  1. Excelの 「ファイル」 -> 「オプション」 を開きます。
  2. 左側のメニューから 「クイックアクセスツールバー」 を選択します。
  3. 「コマンドの選択」のプルダウンから 「マクロ」 を選びます。
  4. 一覧に PERSONAL.XLSB!マクロ名 が表示されるので、選択して真ん中の 「追加」 ボタンをクリックします。
  5. (おまけ)追加されたマクロを選択し、右下の 「変更」 ボタンを押すと、好きなアイコンに変更できます。
  6. 「OK」で閉じます。
Pasted image 20260303185650.png

これで、Excelの左上に専用のボタンが追加され、いつでもワンクリックで好きなマクロを発動できるようになります。

Pasted image 20260303185828.png

まとめ

PERSONAL.XLSBを活用すれば、日々のクッソだるい繰り返し作業がかなり楽になりますし、ミスも発生しづらくなります。とくにドキュメント納品とかする際は、特定のルールに基づきひたすら同じことを繰り返すことになると思うので、こいつを使えるようにしておくと便利です。

Excelおじさんに幸あれ。

最後に

どっちかというと若者向けかも知れねえ。