⚠️ 注意事項(必読)
🚫 悪用厳禁 — 必ず読んでください
本記事で解説する手法は、自分が作成・管理しているファイル、または正当な権限を有するファイルに対してのみ使用してください。
他者が作成したファイルへの無断アクセス・解析・改ざんは、以下の法律に抵触する可能性があります。
- 不正競争防止法(営業秘密の侵害)
- 不正アクセス禁止法
- 著作権法(プログラムの無断複製・改変)
- 刑法(電子計算機損壊等業務妨害罪 など)
また、作業前に必ずファイルのバックアップを取得してください。バイナリ編集により、ファイルが破損する場合があります。本記事の内容を実行したことによる損害について、筆者は一切の責任を負いません。
.xls 形式の構造
.xls は Excel 97〜2003 形式のバイナリファイルです(Compound Document / OLE2 形式)。
VBA プロジェクトのパスワードは DPB= という文字列のあとにハッシュ値として格納されています。
必要なツール
| ツール | 入手先 | 用途 |
|---|---|---|
| HxD(推奨) | https://mh-nexus.de/en/hxd/ | 無料のバイナリエディタ。Windows 用。インストール不要な Portable 版もあり。 |
| 010 Editor | 公式サイト | 高機能な商用バイナリエディタ。試用版あり。 |
| テキストエディタ(バイナリモード) | VS Code 等 | バイナリ表示プラグインが必要。HxD の方が操作が簡単。 |
💡 HxD が推奨な理由
無料・軽量・日本語対応(部分的)・検索置換機能が使いやすいため、初めての方には HxD が最適です。公式サイトから ZIP を解凍するだけで使えます。
方法1:バイナリエディタで書き換える
⚠️ 作業前にバックアップを取る
元のファイルを別フォルダにコピーしてから作業してください。誤編集でファイルが開けなくなることがあります。
-
Excel ファイル(.xls)を閉じる
編集対象の .xls ファイルが Excel で開かれている場合は必ず閉じてください。開いたまま編集するとファイルが破損します。 -
HxD を起動し、.xls ファイルを開く
HxD を管理者権限で起動し、「ファイル → 開く」から対象の .xls ファイルを開きます。 -
DPB=を検索する
「検索 → 検索(Ctrl+F)」を開き、「テキスト」タブでDPB=を入力して検索します。DPB= -
DPB=をDPx=に書き換える
「検索 → 置換(Ctrl+R)」を使い、DPB=をDPx=に置換します。変更前 変更後 目的 DPB=DPx=Excel にパスワードを不正な値として認識させ、リセットプロンプトを表示させる -
ファイルを保存する
「ファイル → 保存(Ctrl+S)」で上書き保存します。HxD がバックアップを作成するか確認するダイアログを出す場合はキャンセルして構いません(事前にバックアップ済みのため)。 -
Excel で .xls ファイルを開く
Excel で編集したファイルを開きます。「プロジェクトのパスワードが不正です。続行しますか?」のようなダイアログが表示されます。「はい」 をクリックしてください。 -
VBE を開いてパスワードをリセットする
Alt + F11で VBE を開きます。プロジェクトが無保護の状態で開けるので、「ツール → VBAプロジェクトのプロパティ → 保護タブ」からパスワードを新しく設定(または空欄にして解除)します。 -
ファイルを保存して完了
Ctrl + Sで保存すれば完了です。
✅ うまくいかない場合
DPB= が複数見つかる場合はすべて DPx= に置換してください。1件しかヒットしない場合でも同様です。
方法2:.xlsm に変換して解除する
.xls ファイルを一度 Excel で開き(パスワード入力画面が出る前、または入力せずにマクロ以外の内容だけ開ける場合)、 .xlsm 形式で保存し直してから PART 03 の手順を適用する方法もあります。
💡 .xlsm への変換手順
Excel で .xls を開き → 「名前をつけて保存」→ ファイル形式を「Excel マクロ有効ブック(*.xlsm)」で保存 → その後 PART 03 の手順 で解除します。
よくあるエラーと対処法
| 症状 | 原因 | 対処法 |
|---|---|---|
| ファイルが開けなくなった | バイナリ編集ミス | バックアップから復元する |
DPB= が見つからない |
パスワードが未設定 / 別の場所にある | パスワードが設定されていないか確認。DPB(=なし)でも検索してみる |
| 置換後も同じダイアログが出ない | 置換が失敗している | HxD を管理者権限で再起動して再試行 |
| Excel がクラッシュする | ファイル破損 | バックアップから復元。または .xlsm 変換後に PART 03 を試みる |
形式比較表(.xls vs .xlsm)
| 項目 | .xls | .xlsm |
|---|---|---|
| ファイル構造 | バイナリ(OLE2/Compound) | ZIP 内 XML + vbaProject.bin |
| 解除難易度 | ★★☆(中) | ★★★(やや高) |
| 必要ツール | バイナリエディタのみ | バイナリエディタ + ZIP 解凍ツール |
| 操作のポイント | DPB= を DPx= に置換 | vbaProject.bin を展開して同様に編集 |
| 解除手順 | 本記事 | PART 03 |
まとめ
.xls 形式の VBA パスワード解除は、HxD などのバイナリエディタで DPB= を DPx= に書き換えるだけで完結します。
手順は比較的シンプルですが、バックアップの取得と自分のファイルのみに使用することを必ず守ってください。
✅ 次の記事
.xlsm 形式の解除手順は PART 03 で解説しています。ZIP 構造を利用した手順と Python による自動化も紹介します。