Home / Microsoft / Excel / 【2026年最新版】Excelで「マクロがブロックされました」と表示されて実行できない原因と対処法

【2026年最新版】Excelで「マクロがブロックされました」と表示されて実行できない原因と対処法

※本ページにはプロモーション(広告)が含まれています

Excelでマクロ(VBA)を作成したのに、保存したら消えていた。実行しようとしたら「セキュリティリスク」の警告が出てブロックされた。このようなトラブルに悩んでいませんか?

ExcelのマクロやVBAが保存できない・消える・実行できない原因は、ファイル形式の選択ミスセキュリティ設定によるブロック個人用マクロブックの破損など、いくつかのパターンに分類できます。原因を正しく特定すれば、ほとんどのケースは自分で解決できます。

この記事では、Excelのマクロ・VBAが保存できない・消える・実行できないときの原因と具体的な対処法を、初心者の方にもわかりやすくステップ形式で解説します。

この記事でわかること

  • マクロ(VBA)が保存できない・消えてしまう主な原因
  • 「セキュリティリスク」でマクロがブロックされる理由と解除方法
  • xlsxとxlsmの違いと正しい保存方法
  • 信頼済みの場所の設定方法
  • 個人用マクロブック(Personal.xlsb)が消えた時の復旧方法
  • VBAプロジェクトが壊れた時の修復手順
  • マクロのトラブルを防ぐための日常的な対策

マクロ(VBA)の基礎知識

対処法を理解するために、まずExcelのマクロとVBAの基本を押さえておきましょう。

マクロとは?

マクロとは、Excelの操作を自動化する機能です。繰り返し行う操作(データの整理、書式の変更、集計処理など)を記録しておき、ボタン一つで再実行できます。

マクロは大きく分けて2種類の作り方があります。

  • マクロの記録:実際にExcel上で操作した内容を自動で記録する方法。プログラミング知識が不要で初心者でも使える
  • VBAで直接コードを書く:Visual Basic for Applications(VBA)というプログラミング言語で、より高度な自動化処理を作成する方法

マクロに関連するファイル形式

Excelにはいくつかのファイル形式があり、マクロを保存できるかどうかは形式によって異なります。これがトラブルの最大の原因です。

拡張子 形式名 マクロ保存 用途
.xlsx Excelブック 不可 通常のExcelファイル
.xlsm マクロ有効ブック 可能 マクロ付きのファイル
.xlsb バイナリブック 可能 大容量データ向け
.xls Excel 97-2003ブック 可能 旧形式(互換性用)
.xltm マクロ有効テンプレート 可能 マクロ付きテンプレート

重要ポイント.xlsx形式ではマクロを保存できません。マクロが入ったファイルを.xlsx形式で保存すると、マクロ部分が削除されてしまいます。これが「マクロが消えた」トラブルの最も多い原因です。

個人用マクロブック(Personal.xlsb)とは

個人用マクロブックは、どのExcelファイルを開いていても使えるマクロを保存する特別なファイルです。Personal.xlsbという名前で、以下の場所に保存されています。

C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Excel\XLSTART\

このファイルが破損したり削除されたりすると、個人用マクロブックに保存していたマクロがすべて使えなくなります。

マクロ(VBA)が保存できない・消える・実行できない原因一覧

マクロやVBAのトラブルは、大きく3つのカテゴリに分けられます。それぞれの原因と症状を表にまとめました。

保存できない・消える原因

原因 症状 発生頻度
xlsx形式で保存した 保存後にマクロがすべて消える 非常に多い
保存時の警告で「はい」を選択 マクロなしで上書き保存される 非常に多い
個人用マクロブックの破損 Personal.xlsbのマクロが全て消える やや多い
VBAプロジェクトの破損 VBAエディタでモジュールが表示されない まれ
Officeの自動更新による不具合 アップデート後にVBAが消失する まれ

実行できない・ブロックされる原因

原因 症状 発生頻度
マクロのセキュリティ設定 「セキュリティの警告」バーが表示される 非常に多い
インターネットからのファイルがブロック 「Microsoftによりマクロの実行がブロックされました」と表示 非常に多い
信頼済みの場所に登録されていない 毎回マクロの有効化を求められる 多い
VBAコードの構文エラー 「コンパイルエラー」が表示される 多い
参照設定の不足 「実行時エラー」が発生する やや多い
個人用マクロブックの無効化 登録したマクロが一覧に表示されない やや多い
グループポリシーによる制限 会社のPCでマクロが完全にブロック 企業環境で多い

【対処法1】正しいファイル形式(xlsm)で保存する

マクロが消えるトラブルの最も多い原因は、ファイル形式の選択ミスです。マクロ入りのファイルは必ず.xlsm形式で保存してください。

ステップ1:名前を付けて保存を開く

  1. Excelの「ファイル」タブをクリック
  2. 「名前を付けて保存」を選択(ショートカット:F12キー)
  3. 保存先のフォルダを選択

ステップ2:ファイルの種類を変更する

  1. 「名前を付けて保存」ダイアログで、「ファイルの種類」のドロップダウンをクリック
  2. 一覧から「Excel マクロ有効ブック (*.xlsm)」を選択
  3. 「保存」をクリック
注意:「Excelブック (*.xlsx)」のまま保存しようとすると、「次の機能はマクロなしのブックに保存できません」という警告が表示されます。ここで「はい」を押すとマクロが削除されます。必ず「いいえ」を押して、ファイル形式をxlsmに変更してから保存してください。

ステップ3:既存のxlsxファイルをxlsmに変換する

すでにxlsx形式で保存してしまい、マクロが消えたファイルは元に戻せません。ただし、マクロのコードがバックアップやメモに残っている場合は、以下の手順で復旧できます。

  1. xlsxファイルを開く
  2. F12キーで「名前を付けて保存」を開く
  3. ファイルの種類を「Excel マクロ有効ブック (*.xlsm)」に変更
  4. 保存する
  5. Alt+F11でVBAエディタを開く
  6. マクロのコードを再入力または貼り付け
  7. 再度保存する

【対処法2】マクロのセキュリティ設定を変更する

Excelのマクロセキュリティ設定が厳しすぎると、マクロが実行できません。セキュリティレベルを適切に調整しましょう。

ステップ1:トラストセンター(セキュリティセンター)を開く

  1. Excelの「ファイル」タブをクリック
  2. 「オプション」を選択
  3. 左メニューから「トラストセンター」(または「セキュリティセンター」)をクリック
  4. 「トラストセンターの設定」ボタンをクリック

ステップ2:マクロの設定を変更する

  1. 左メニューから「マクロの設定」を選択
  2. 以下の4つの選択肢から適切なものを選ぶ
設定 動作 推奨度
警告なしですべてのマクロを無効にする すべてのマクロがブロックされ、通知もなし セキュリティ最優先の場合
警告を表示してすべてのマクロを無効にする マクロは無効だが、黄色い通知バーで有効化を選べる 推奨
デジタル署名されたマクロを除き無効にする 署名付きマクロのみ自動実行 企業環境向け
すべてのマクロを有効にする すべてのマクロが自動実行される 非推奨(危険)

推奨設定「警告を表示してすべてのマクロを無効にする」です。この設定であれば、ファイルを開いた時に黄色い通知バーが表示され、自分で「コンテンツの有効化」をクリックしてマクロを有効にできます。セキュリティを保ちながらマクロも使える、バランスの良い設定です。

ステップ3:設定を保存する

  1. 設定を選択したら「OK」をクリック
  2. もう一度「OK」をクリックしてオプション画面を閉じる
  3. Excelを一度閉じて再起動する

【対処法3】インターネットからダウンロードしたファイルのブロックを解除する

2022年以降、Microsoftはセキュリティ強化のため、インターネットからダウンロードしたExcelファイルのマクロをデフォルトでブロックするようになりました。「セキュリティリスク:このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました」というメッセージが表示される場合は、以下の方法で解除できます。

方法A:ファイルのプロパティからブロック解除(推奨)

  1. 該当するExcelファイルを右クリック
  2. 「プロパティ」を選択
  3. 「全般」タブの一番下に「セキュリティ」の項目がある
  4. 「許可する」にチェックを入れる
  5. 「適用」「OK」をクリック
  6. ファイルを開き直す
ポイント:「セキュリティ」の項目が表示されない場合、そのファイルはインターネットからのダウンロードとしてマークされていません。別の原因でブロックされている可能性があります。

方法B:PowerShellでブロック解除

複数のファイルを一括でブロック解除したい場合は、PowerShellを使う方法が便利です。

  1. Windowsの検索バーで「PowerShell」と入力
  2. 「Windows PowerShell」を右クリック「管理者として実行」
  3. 以下のコマンドを実行

単一ファイルの場合:

Unblock-File -Path “C:\Users\ユーザー名\Downloads\ファイル名.xlsm”

フォルダ内の全xlsmファイルを一括解除する場合:

Get-ChildItem -Path “C:\Users\ユーザー名\Downloads” -Filter *.xlsm | Unblock-File

【対処法4】信頼済みの場所にフォルダを追加する

特定のフォルダに保存したマクロファイルを毎回ブロック解除するのは面倒です。そこで、「信頼済みの場所」として登録すれば、そのフォルダ内のファイルはマクロが自動的に有効になります。

ステップ1:トラストセンターを開く

  1. 「ファイル」「オプション」「トラストセンター」を開く
  2. 「トラストセンターの設定」をクリック

ステップ2:信頼できる場所を追加する

  1. 左メニューから「信頼できる場所」を選択
  2. 「新しい場所の追加」をクリック
  3. 「参照」ボタンをクリックして、マクロファイルを保存しているフォルダを選択
  4. サブフォルダも含めたい場合は「この場所のサブフォルダーも信頼する」にチェック
  5. 「OK」をクリック
セキュリティ上の注意:信頼済みの場所に登録したフォルダ内のマクロは警告なしで実行されます。信頼できるファイルだけを保存する専用フォルダを作成し、デスクトップやダウンロードフォルダ全体を登録することは避けてください。

ステップ3:ネットワーク上の場所を信頼済みにする場合

会社の共有フォルダなど、ネットワーク上のフォルダを信頼済みにする場合は、追加の設定が必要です。

  1. トラストセンターの「信頼できる場所」画面で、「自分のネットワーク上にある信頼できる場所を許可する」にチェックを入れる
  2. 「新しい場所の追加」でネットワークパス(例:\\server\share\macros)を入力
  3. 「OK」で保存

【対処法5】個人用マクロブック(Personal.xlsb)を復旧する

個人用マクロブックが消えたり無効化されたりして、登録していたマクロが使えなくなった場合の対処法です。

ケース1:Personal.xlsbが無効化されている場合

Excelのクラッシュ後に個人用マクロブックが自動的に無効化されることがあります。

  1. 「ファイル」「オプション」「アドイン」を選択
  2. 画面下部の「管理」ドロップダウンで「使用できないアイテム」を選択して「設定」をクリック
  3. 一覧に「PERSONAL.XLSB」が表示されていたら選択
  4. 「有効にする」をクリック
  5. Excelを再起動する

ケース2:Personal.xlsbファイルが削除されている場合

まず、ファイルが存在するか確認します。

  1. エクスプローラーのアドレスバーに以下のパスを入力してEnter
%AppData%\Microsoft\Excel\XLSTART
  1. フォルダ内にPersonal.xlsbがあるか確認
  2. ない場合は、以下の手順で新規作成する

ケース3:Personal.xlsbを新規作成する

  1. Excelで新しいブックを開く
  2. 「開発」タブ→「マクロの記録」をクリック
  3. 「マクロの保存先」を「個人用マクロブック」に変更
  4. 「OK」をクリック
  5. 何か簡単な操作(セルをクリックするだけでもOK)を行う
  6. 「記録終了」をクリック
  7. Excelを閉じる際に「個人用マクロブックの変更を保存しますか?」と聞かれたら「保存」をクリック

これで新しいPersonal.xlsbファイルが作成されます。以前のマクロは失われていますが、新しくマクロを登録できる状態に復旧できます。

ケース4:バックアップから復元する

Personal.xlsbのバックアップがある場合(Windowsの「以前のバージョン」機能やOneDriveのバージョン履歴など)は、以下の手順で復元します。

  1. Excelが完全に終了していることを確認
  2. XLSTARTフォルダ(%AppData%\Microsoft\Excel\XLSTART)を開く
  3. バックアップのPersonal.xlsbファイルをXLSTARTフォルダにコピー
  4. Excelを起動して、マクロが復元されているか確認

【対処法6】VBAプロジェクトを修復する

VBAエディタでモジュールが表示されない、コードが消えているなど、VBAプロジェクト自体が壊れている場合の対処法です。

方法A:VBAモジュールをエクスポート・インポートする

壊れたファイルからVBAコードを救出する手順です。

  1. Alt+F11でVBAエディタを開く
  2. 左側のプロジェクトエクスプローラーで、問題のモジュールを確認
  3. モジュールが表示されている場合は、右クリック→「ファイルのエクスポート」を選択
  4. .basファイル(標準モジュール)として任意の場所に保存
  5. 新しいxlsmファイルを作成
  6. 新しいファイルのVBAエディタで、右クリック→「ファイルのインポート」を選択
  7. 先ほどエクスポートした.basファイルを選択

方法B:VBAプロジェクトをコンパイルしてエラーを検出する

VBAコードに構文エラーがある場合、マクロが正常に動作しません。

  1. Alt+F11でVBAエディタを開く
  2. メニューの「デバッグ」「VBAProjectのコンパイル」をクリック
  3. エラーがあれば、該当箇所がハイライトされて表示される
  4. エラー内容を確認して修正する

方法C:参照設定を確認・修復する

他のPC環境にファイルを移動した場合、参照設定が見つからなくなることがあります。

  1. VBAエディタのメニューで「ツール」「参照設定」を開く
  2. 「参照不可」と表示されている項目がないか確認
  3. 「参照不可」のチェックを外す
  4. 必要な参照(例:Microsoft Scripting Runtime など)を再度チェックして追加
  5. 「OK」で閉じる

【対処法7】「開発」タブが表示されていない場合

VBAエディタやマクロの記録を使うには、「開発」タブが必要です。初期設定では非表示になっているため、まず表示設定を確認しましょう。

  1. 「ファイル」「オプション」「リボンのユーザー設定」を選択
  2. 右側の「メインタブ」一覧から「開発」にチェックを入れる
  3. 「OK」をクリック

これでリボンに「開発」タブが追加され、マクロの記録・実行、VBAエディタへのアクセスが可能になります。

【対処法8】Officeの修復とアップデート

上記の方法で解決しない場合、Office自体に問題がある可能性があります。

Officeのアップデート

  1. Excelを開いて「ファイル」「アカウント」を選択
  2. 「更新オプション」「今すぐ更新」をクリック
  3. 更新が完了したらExcelを再起動

Officeのクイック修復

  1. Windowsの「設定」「アプリ」「インストール済みアプリ」を開く
  2. 「Microsoft Office」または「Microsoft 365」を見つけて「変更」をクリック
  3. 「クイック修復」を選択して「修復」をクリック
  4. 修復が完了したらPCを再起動

クイック修復で改善しない場合は、「オンライン修復」を試してください。インターネット接続が必要ですが、より徹底的な修復が行われます。

【対処法9】レジストリ設定による修復(上級者向け)

Officeの更新後にVBAが消失する特定の不具合に対しては、レジストリの変更で改善できる場合があります。

警告:レジストリの誤った変更はWindowsの動作に深刻な影響を与える可能性があります。変更前に必ずレジストリのバックアップを取得してください。操作に不安がある場合は、IT管理者や専門家に相談してください。
  1. Excelを完全に終了する
  2. Windows+Rを押して「ファイル名を指定して実行」を開く
  3. regedit と入力して「OK」をクリック
  4. 以下のパスに移動
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Options
  1. 「Options」を右クリック→「新規」「DWORD(32ビット)値」
  2. 名前を「ForceVBALoadFromSource」に設定
  3. 値のデータを「1」に設定
  4. 「OK」をクリック
  5. Excelを再起動して、VBAが正常に表示されるか確認

マクロのトラブルを予防するための日常対策

マクロが消えたり動かなくなったりするトラブルを防ぐために、日頃から以下の対策を実施しましょう。

対策 方法 効果
定期バックアップ マクロファイルとPersonal.xlsbを定期的にバックアップ 消失時に復元可能
VBAコードのエクスポート 重要なモジュールは.basファイルとして書き出し コード消失時の復旧が容易
xlsm形式で保存する習慣 新規ファイル作成時に最初にxlsmで保存 形式ミスによる消失を防止
信頼済みフォルダの活用 マクロファイル専用のフォルダを作成して信頼済み登録 毎回のブロック解除が不要に
Office更新前の確認 大きなアップデート前にマクロファイルのバックアップを取る アップデート起因の消失を防止
バージョン管理 VBAコードをテキストファイルにもコピーして保管 変更履歴の追跡が可能

よくある質問(FAQ)

Q1. xlsxで保存してしまい、マクロが消えました。元に戻せますか?

残念ながら、xlsxで上書き保存してしまったマクロは復元できません。Excelの「元に戻す」機能は保存後には使えません。ただし、以下の方法で回復の可能性があります。

  • OneDriveやSharePointで同期している場合:バージョン履歴から以前のxlsm版を復元できる
  • Windowsの「以前のバージョン」:ファイルを右クリック→「以前のバージョンの復元」で回復できることがある
  • 自動回復ファイル%AppData%\Microsoft\Excel フォルダに一時ファイルが残っている場合がある

日頃からxlsm形式で保存する習慣をつけ、VBAコードのバックアップを取ることが重要です。

Q2. 「Microsoftによりマクロの実行がブロックされました」と表示されます。どうすればいいですか?

このメッセージは、インターネットからダウンロードしたファイルのマクロがブロックされた時に表示されます。対処法は以下の3つです。

  1. ファイルのプロパティからブロック解除(最も簡単)
  2. 信頼済みの場所にファイルのフォルダを登録
  3. PowerShellでUnblock-Fileコマンドを使用

詳しくは「対処法3」と「対処法4」を参照してください。

Q3. 会社のPCでマクロが完全にブロックされています。自分で設定を変更できますか?

企業環境では、IT管理者がグループポリシーでマクロの実行を制限していることがあります。この場合、個人の設定変更では解除できません。IT部門に以下を相談してください。

  • 業務で必要なマクロファイルの承認申請
  • 信頼済みの場所へのフォルダ追加の依頼
  • デジタル署名されたマクロのみ許可する設定への変更
Q4. マクロの記録で作ったマクロが「マクロ」ダイアログに表示されません。なぜですか?

以下の原因が考えられます。

  • マクロをPrivate Subで定義している:Private修飾子がついたマクロは一覧に表示されません。「Public Sub」に変更するか、修飾子を削除してください
  • 引数付きのマクロ:引数(パラメータ)があるSubプロシージャはマクロ一覧に表示されません
  • 個人用マクロブックが非表示Alt+F11でVBAエディタを開き、プロジェクトエクスプローラーに「VBAProject (PERSONAL.XLSB)」があるか確認してください
  • マクロのセキュリティ設定:マクロが無効になっている可能性があります
Q5. Macでも同じ対処法が使えますか?

基本的な対処法(ファイル形式の変更、セキュリティ設定の変更、VBAエディタの操作)はMac版Excelでも使えます。ただし、以下の点が異なります。

  • セキュリティ設定の場所:「Excel」メニュー→「環境設定」→「セキュリティとプライバシー」
  • 個人用マクロブックのパス:~/Library/Group Containers/UBF8T346G9.Office/User Content/Startup/Excel/
  • レジストリ設定はWindowsのみの対処法のため、Macでは使用できません
  • Mac版ExcelはWindows版と比べて一部のVBA機能が制限されていることがあります
Q6. VBAの「コンパイルエラー」が出て実行できません。どうすればいいですか?

コンパイルエラーはVBAコードに構文上の問題があることを示しています。

  1. VBAエディタで「デバッグ」→「VBAProjectのコンパイル」を実行
  2. エラー箇所がハイライトされるので、内容を確認
  3. よくある原因:変数名のスペルミス、End IfやNext の書き忘れ、存在しないオブジェクトの参照
  4. 「参照設定」で「参照不可」となっている項目がないかもチェック
Q7. マクロを含むファイルをメールで送ると、相手側で開けないことがあります。対策はありますか?

メール添付のxlsmファイルはセキュリティ上の理由でブロックされやすいです。以下の対策があります。

  • Zipファイルに圧縮して送る:メールセキュリティの一部を回避できる場合がある
  • 共有フォルダやクラウドストレージに置いてリンクを共有する:ファイルを直接ダウンロードするより安全とみなされることがある
  • 受信側でブロック解除手順を案内する:ファイルのプロパティからの解除方法を伝える
  • マクロなしのxlsxとVBAコード(.basファイル)を別々に送る:受信側でインポートしてもらう
Q8. 「すべてのマクロを有効にする」に設定しても大丈夫ですか?

推奨しません。「すべてのマクロを有効にする」設定は、悪意のあるマクロも含めてすべてのマクロが自動的に実行されるため、セキュリティ上のリスクが高いです。代わりに以下の方法を推奨します。

  • 「警告を表示してすべてのマクロを無効にする」に設定し、信頼できるファイルのみ手動で有効化する
  • 頻繁に使うマクロファイルのフォルダを「信頼済みの場所」に登録する
  • これにより、セキュリティを維持しながら必要なマクロを使える環境が実現できます

まとめ

Excelのマクロ(VBA)が保存できない・消える・実行できない場合の対処法を整理します。

症状 最も可能性の高い原因 対処法
保存後にマクロが消える xlsx形式で保存している xlsm形式で保存し直す
「ブロックされました」と表示 ダウンロードファイルのブロック プロパティからブロック解除
毎回「コンテンツの有効化」が出る 信頼済みの場所に未登録 信頼済みの場所にフォルダ追加
個人用マクロが使えない Personal.xlsbの無効化・消失 アドイン設定から有効化・再作成
コンパイルエラーが出る VBAコードの構文エラー・参照不可 コンパイルチェック・参照設定修復
会社PCで完全にブロック グループポリシーによる制限 IT管理者に相談

最も重要なポイントは以下の3つです。

  1. マクロ入りファイルは必ずxlsm形式で保存する(xlsx形式ではマクロが消える)
  2. セキュリティ設定は「警告を表示して無効」が推奨(安全性と利便性のバランス)
  3. VBAコードは定期的にバックアップを取る(エクスポート機能を活用)

この記事の対処法を順番に試すことで、ほとんどのマクロ・VBAトラブルは解決できます。特にファイル形式の選択ミスは初心者に最も多い原因ですので、保存時には必ずファイルの種類を確認する習慣をつけましょう。

Check Also

【2026年最新版】ExcelのPower Pivotが使えない・有効にできない原因と対処法

Excelで大量のデータを分析 …