【VBA】個人用マクロブック(PERSONAL.XLSB)の場所を特定し削除する方法

目次

はじめに

VBAを使い始めると耳にする「個人用マクロブック」。どのExcelファイルを開いていても共通で使えるマクロを保存しておける、とても便利な隠しファイルです。

しかし、「マクロの整理のために一度リセットしたい」「動作がおかしくなったので再作成したい」といった理由で、この個人用マクロブックの場所を探し、削除したいという場面が出てくることがあります。

この記事では、VBAを使って個人用マクロブック(PERSONAL.XLSB)の保存場所を特定する方法と、削除する際の注意点や具体的なコードを分かりやすく解説します。

⚠️ 重要:削除する前の注意 個人用マクロブックを削除すると、そこに保存されているマクロは全て失われます。 削除は自己責任で、事前にバックアップを取るなど、慎重に行ってください。


個人用マクロブックとは?

個人用マクロブックは、Excelの起動時に自動的に読み込まれる、マクロ専用の特別なブックです。

  • ファイル名: PERSONAL.XLSB
  • 保存場所: XLSTART という名前の特殊なフォルダ

この XLSTART フォルダに保存されたファイルは、Excel起動時に必ず開かれる仕組みになっています。個人用マクロブックは、通常は非表示になっているため、その存在に気づきにくいかもしれません。


VBAで場所を特定する方法

個人用マクロブックが保存されている XLSTART フォルダのパスは、VBAの Application.StartupPath プロパティで簡単に取得できます。

以下のコードを実行すると、イミディエイトウィンドウにそのパスが表示されます。

場所を調べるサンプルコード

Sub FindPersonalMacroWorkbookPath()

    ' Application.StartupPathプロパティでXLSTARTフォルダのパスを取得
    Dim startupFolderPath As String
    startupFolderPath = Application.StartupPath
    
    ' イミディエイトウィンドウに出力
    Debug.Print "個人用マクロブックの保存場所(XLSTARTフォルダ):"
    Debug.Print startupFolderPath

    ' メッセージボックスで表示
    MsgBox "個人用マクロブックは以下のフォルダにあります:" & vbCrLf & vbCrLf & startupFolderPath, vbInformation

End Sub

【実行方法】

  1. VBE(Alt + F11)を開きます。
  2. イミディエイトウィンドウを表示します(Ctrl + G)。
  3. 上記コードを実行すると、イミディエイトウィンドウとメッセージボックスに C:\Users\ユーザー名\AppData\Roaming\Microsoft\Excel\XLSTART のようなパスが表示されます。

VBAで削除する方法(⚠️取扱注意)

場所が特定できれば、ファイルを削除することも可能です。ただし、前述の通り、保存したマクロが全て消えるため、実行は慎重にお願いします。

不要になった場合でも、いきなり削除するよりは、まずファイル名を「PERSONAL_old.XLSB」のように変更(リネーム)して様子を見ることをお勧めします。

削除を実行するサンプルコード

ここでは、より安全な FileSystemObject を使って削除する方法をご紹介します。

Sub DeletePersonalMacroWorkbook()

    '== 変数定義 ==
    Dim objFSO As Object
    Dim personalBookPath As String
    Dim userResponse As VbMsgBoxResult

    '== パスの設定 ==
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    personalBookPath = Application.StartupPath & "¥PERSONAL.XLSB"
    
    '== ファイルの存在確認 ==
    If Not objFSO.FileExists(personalBookPath) Then
        MsgBox "個人用マクロブック(PERSONAL.XLSB)は見つかりませんでした。", vbInformation
        Exit Sub
    End If
    
    '== ユーザーに最終確認 ==
    userResponse = MsgBox("以下の個人用マクロブックを完全に削除します。" & vbCrLf & _
                          "保存されているマクロは全て失われますが、よろしいですか?" & vbCrLf & vbCrLf & _
                          personalBookPath, _
                          vbCritical + vbOKCancel, "最終確認")
                          
    '== OKが押された場合のみ削除を実行 ==
    If userResponse = vbOK Then
        On Error Resume Next ' Excelで開かれている可能性を考慮
        objFSO.DeleteFile personalBookPath, True '読み取り専用でも強制削除
        On Error GoTo 0
        
        If Not objFSO.FileExists(personalBookPath) Then
            MsgBox "個人用マクロブックを削除しました。", vbInformation
        Else
            MsgBox "ファイルの削除に失敗しました。" & vbCrLf & _
                   "Excelを一度再起動してからお試しください。", vbExclamation
        End If
    Else
        MsgBox "処理を中断しました。", vbInformation
    End If
    
    '== オブジェクト解放 ==
    Set objFSO = Nothing

End Sub

手動で削除(またはリネーム)する方法

VBAを使わずに、手動でフォルダを開いて操作する方が安心な場合も多いでしょう。

  1. 上記の「場所を調べるサンプルコード」を実行して、XLSTART フォルダのパスをコピーします。
  2. エクスプローラーのアドレスバーに、コピーしたパスを貼り付けて Enter キーを押します。
  3. XLSTART フォルダが開きます。
  4. 中にある PERSONAL.XLSB ファイルを削除、または名前の変更を行います。

まとめ

今回は、個人用マクロブックの場所を特定し、削除する方法について解説しました。

  • 保存場所は Application.StartupPath で特定できる。
  • 削除するとマクロが全て消えるため、バックアップやリネームを推奨。
  • VBAでの削除も可能だが、手動での操作がより安全。

個人用マクロブックは非常に便利ですが、その仕組みと場所を知っておくことで、トラブルが発生した際にも冷静に対処できます。ぜひ今回の内容を知識として覚えておいてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次