0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

マクロ・アドインを実行させずに Excel ファイルを開く方法まとめ

Posted at

Excel の .xlsm やアドイン入りブックを開いたとき、
Auto_OpenWorkbook_Open などの自動実行マクロが走って困ることがあります。
セキュリティやデバッグのために 「マクロを実行させずに開く」 方法を整理しました。

1. Shift キーを押しながら開く(手動で一番手軽)

ファイルをダブルクリックする直前から Shift を押しっぱなしで開く

Auto_OpenWorkbook_Open、アドインの自動読み込みがスキップされる

Excel の「緊急停止スイッチ」的な機能

2. Excel をセーフモードで起動する

  1. Ctrl キーを押しながら Excel を起動
    (または Win + Rexcel /safe)

  2. 起動した Excel の [ファイル] → [開く] メニューや、ドラッグ&ドロップで .xlsm などのファイルを開く

アドインや自動実行マクロが読み込まれない状態で起動できる

3. トラストセンターで無効化

[ファイル] → [オプション] → [トラスト センター]

[マクロの設定] → 「通知なしで全てのマクロを無効にする」を選択

ファイルを開く(マクロは強制的に停止)

4. ファイル拡張子を一時的に変更

.xlsm → .xlsx にリネームして開く

マクロモジュールは無視されるので実行されない

ただし VBA コード自体は確認できない(コード解析には不向き)

5. PowerShell / COM で自動化する場合

外部から Excel を起動する場合は、COM オブジェクトの設定でマクロ実行を無効化可能。

$excel = New-Object -ComObject Excel.Application
$excel.Visible = $true


# マクロを強制無効化
$excel.AutomationSecurity = 3  # msoAutomationSecurityForceDisable
$excel.EnableEvents = $false   # イベントも止める

$wb = $excel.Workbooks.Open("C:\path\to\file.xlsm")

# ← ここでは Auto_Open や Workbook_Open は実行されない

$wb.Close($false)
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null

まとめ

方法 特徴
Shift 押し開き 手軽。開く瞬間だけ止められる
セーフモード アドイン含めて完全に無効化
マクロ設定変更 強制無効化できるが元に戻す手間あり
拡張子変更 マクロを無視できるがコードは確認できない
PowerShell/COM 自動化で安全に開く場合に便利

✅ 「Shift 開き」や「AutomationSecurity=3」あたりが一番実用的です。
用途に応じて使い分けると安心してファイルを開けます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?