はじめに
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
【実行方法】
- VBE(
Alt + F11
)を開きます。 - イミディエイトウィンドウを表示します(
Ctrl + G
)。 - 上記コードを実行すると、イミディエイトウィンドウとメッセージボックスに
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を使わずに、手動でフォルダを開いて操作する方が安心な場合も多いでしょう。
- 上記の「場所を調べるサンプルコード」を実行して、
XLSTART
フォルダのパスをコピーします。 - エクスプローラーのアドレスバーに、コピーしたパスを貼り付けて
Enter
キーを押します。 XLSTART
フォルダが開きます。- 中にある
PERSONAL.XLSB
ファイルを削除、または名前の変更を行います。
まとめ
今回は、個人用マクロブックの場所を特定し、削除する方法について解説しました。
- 保存場所は
Application.StartupPath
で特定できる。 - 削除するとマクロが全て消えるため、バックアップやリネームを推奨。
- VBAでの削除も可能だが、手動での操作がより安全。
個人用マクロブックは非常に便利ですが、その仕組みと場所を知っておくことで、トラブルが発生した際にも冷静に対処できます。ぜひ今回の内容を知識として覚えておいてください。