【Excel】起動時の「すでにマクロが開かれています」はどうすればいい!?最強の解決策は「個人用マクロブックの作り直し」だった

仕事で使っているパソコンを新しくしてから、Excelを開くたびに『PERSONAL.XLSBは編集のためロックされています』というアラートが出るようになってしまいました。

現象と状況の整理

現象

Excelを開くたびに毎回この表示が出ます。パソコンを立ち上げた直後にまっさらなExcelを開いたときでも、です。

タスクマネージャーを確認すると、Excelをすべて終了しているはずなのに「バックグラウンドプロセス」にExcelが残ってしまってます。

状況

この個人用マクロブック(PERSONAL.XLSB)は以前に使っていたPCから新しいPCにコピーで持ってきたものです。

効果があった解決方法

解決方法はシンプルにマクロブックの作り直し。

手順

  1. 現在の個人用マクロブック(PERSONAL.XLSB)からすべてのモジュールをエクスポート
  2. XLSTARTフォルダーから現在の個人用マクロブック(PERSONAL.XLSB)を削除
  3. 新たに個人用マクロブック(PERSONAL.XLSB)を作成。(Excelのマクロの記録から)
  4. 新たにできた(PERSONAL.XLSB)に①でエクスポートしたモジュールをインポート

モジュールを細かく分けているとエクスポート→インポートが面倒ですがしょうがない。

理由

古いPCからコピーしたマクロブック自体に「前世代のロック情報」や「ユーザー情報の不整合」がこびりついている可能性があるらしいです。

個人用マクロブックが犯人かどうかを見分ける方法

モジュールをひとつずつエクスポートしてインポートするのは少々面倒なので、やる前に本当にそのバックグラウンドプロセスの犯人がマクロブックなのかどうか知りたいですよね?

そんな時は Excelをすべて閉じてタスクマネージャーのバックグラウンドプロセスだけにExcelが残っている状態で、XLSTARTフォルダ内のPERSONAL.XLSBを別の場所に移動(またはゴミ箱へポイ)してみてください。これで移動できた場合は犯人は別にいるかも。「使用中のため移動できません」と出た場合は上記の方法を試してみる価値アリです。

個人用マクロブックが犯人じゃなかった場合に試してみること

Excelの設定

Excel自身の機能や、外部連携による干渉を抑えるアプローチです。

  • アドインの無効化(COMアドイン・Excelアドイン):外部連携ソフトがExcelを終了させない原因になっていないか確認。
  • 「信頼できる場所」への登録:セキュリティチェックによるファイルロックを軽減する。
  • プライバシー設定(接続エクスペリエンス)のオフ:Microsoftのクラウド連携機能による終了遅延を防ぐ。
  • クラウドへの自動保存の既定オフ:Windowsの機能が「良かれと思って」ファイルを裏で読み取ってしまうのを防ぐアプローチです。

Windowsの設定

  • Windows Searchのインデックス除外:検索を高速化するスキャン対象からXLSTARTフォルダを外す。
  • ウイルス対策ソフトの除外設定:ウイルススキャンの対象からマクロブックを除外する。
  • エクスプローラーのプレビュー・詳細ウィンドウのオフ:ファイルを選択しただけで中身を表示しようとする機能を切る。
  • クイックアクセスの履歴と表示のオフ:Windowsが「最近使ったファイル」として裏でスキャンするのを防ぐ。
  • PCの「完全シャットダウン」:Shiftを押しながらシャットダウンし、メモリ上のExcelの残骸を完全に消去する。