ExcelVBAのパスワードを解除する[ツールなし・コードなし]

2022-03-05

どうしてもVBAのコードを見るためにのパスワードを解除したいときってありますよね。

今日はこちらのVBAのパスワードを解除する方法をご紹介します。
手順は少し多くなりますが、他のサイトで紹介されている小難しいコードもツールも必要ありません。

まずはじめに注意事項を

あなたが今どうしてVBAのパスワードでお困りなのかは分かりません。

引継ぎでもらったVBAが怖くて実行できないから中身を見たい?
それとも自分でパスワードを付けて忘れてしまった?
それであれば問題ありません。

もし今解除しようとしているVBAが他社による製品の場合、サポート等の対象外になることも考えられます。
その辺を留意してから実行しましょう。

管理人代理
管理人代理

苦労して開いたVBAが同僚の悪口コメントで埋められていたという話もあります。
覚悟を決めましょう。

上司
上司

かなり特殊なシチュエーションを心配するね……。

では早速、VBAのパスワードを解除していきましょう

今回はこちらのBook1.xlsmのVBAのパスワードを解除していきます。

パスワードが求められています
上司
上司

パスワードを解除する前に解除前のXLSMファイルはバックアップを取っておくとよいです。

まずはエクスプローラーの表示多分で「ファイル名拡張子」にチェックが入っていることを確認します

ファイル名末尾に「.xlsm」が表示されることを確認してください。

拡張子を変える

「Book1.xlsm」から「Book1.zip」へファイルの名前を変えます。

管理人代理
管理人代理

アイコンが変わったら上手く変わっていますよ。

「拡張子を変更すると、ファイルが使えなくなる可能性があります。変更しますか?」という警告が出ますが、気にせず「はい」を押下しましょう。

解凍する

右クリックをして、「すべて展開」を選びます。

展開すると「Book1(パスワードを解除したいファイルの名前)」フォルダができあがります。

フォルダ移動する

xlフォルダの中へ移動します。

「~~~.bin」という名前のファイルがあるはずです。

管理人代理
管理人代理

「~~~」の部分はマクロによって名前が変えられるので「vbaProject」という名前ではないかもしれません。

メモ帳でbinファイルを開く

ここからはメモ帳を使用します。

メモ帳を開いて、先ほどのbinファイルを投げ込みましょう。

「プログラムから開く」→メモ帳を選択

という手順でも可能です。

上司
上司

開いたら文字化けしているけど、大丈夫?

管理人代理
管理人代理

大丈夫です!

魔法の言葉を検索して、修正!

そうしたら、メモ帳の中で「DPB」という単語を検索します。

管理人代理
管理人代理

「ctrl+F」で検索ボックスは簡単に出せますよ!

「DPB=」から始まるコードの後ろの「”」で囲まれている文字が何文字か確認します。

その文字を以下の文字に置き換えます!

文字数置き換える文字
727072DC03F903F9FC0704F95EEFAE1F23DCF1D6264B81C43D3A46B2A0CA4171FB586C68D8
7492903E759A929A92656E9B92C75639B8B64742ABD72672E12C1D5191ABE97A903C79AD4919
76CCCE601CA09FBD9FBD6043A0BDC2A3C2EB3F88D56A42E7E5A0915EFACEDC2E85DD37CC5014BC
78AEAC028F0EB1F8CEF8CE0732F9CEA592E7FCD8FBBCF76D6AD82582D90B55EDA5B4546645879DF3
管理人代理
管理人代理

置き換えたらこんな感じになります!

DPB="7072DC03F903F9FC0704F95EEFAE1F23DCF1D6264B81C43D3A46B2A0CA4171FB586C68D8"

「”」の間が72文字だった場合はこうなります。

圧縮して、名前を変える

先ほどのBook1フォルダ直下のファイルを全て選択して、圧縮します。

そしたら完成したzipファイルを元の名前に戻します。

解除完了!……あれ?

できあがったファイルを開いてみます!

上司
上司

ドキドキ

上司
上司

パスワードが求められたよ

管理人代理
管理人代理

パスワードに「0」を打ち込んでみてください

上司
上司

開いた!

この隙にパスワードを解除してしまいましょう。

どうしてパスワードが変わったの?

途中で打ち込んだ文字列にヒントがあります。

DPBという場所には暗号化したパスワードを保管しています。
こちら、保存のたびに毎回変わる文字列なのですが、その情報を置き換えることで強制的にパスワードを変更しています。

途中で打ち込んだ文字列は私が予めパスワードを「0」にしたときに生成されたbinファイルから抽出した文字列です。
インターネットに接続していないパソコンで解除したいときにはこの70桁を打ち込むのではなく、ローカルにパスワードを付けたxlsmファイルを作って、binファイルからDPBの文字をコピーする、という手法も可能です。

最後に

ここまで書いてきましたが、この方法は絶対に悪用厳禁です。

こんな感じで簡単にVBAのパスワードは解除できてしまうので、会社で使用するパスワード付きのVBAに悪口を残すなど見られて困る情報を入れておくのはやめましょう。