はてなブックマークに追加
Facebookでシェア
Google+でシェア
Twitterでシェア
VBAプロジェクトのパスワード復元・復旧方法2007
Excel 2007以降では、マクロを含むワークブックがExcelマクロブック(xlsm形式)とExcelバイナリブック(xlsb形式)のいずれかを使って作成します。
この2つの形式のファイルは、どちらも中身はzip書庫になっており、VBAプロジェクトはvbaProject.binというファイルで作成されています。パスワードを復元・復旧するときは、vbaProject.binファイルを書き換えます。

ちなみに、ここで解説する手順は、緊急時のリカバリー用です。なので、悪用は絶対にダメですよ。管理人も、方法は知っていても絶対にやりません。
用意するものと準備作業
 作業に入る前に、バイナリエディタを用意してください。バイナリエディタなら何でも良いです。ちなみに、管理人は「Stirling」というフリーソフトを使っています。

 それと、作業前には必ずワークブックファイルのバックアップを取っておいてください。復元・復旧中は、一歩間違えるとファイル全体を破損しかねない操作を行うため、失敗するとそれこそ取り返しの付かないことになります。
作業手順
 パスワード復旧の練習用として、サンプルファイルを一つ用意しました。ダウンロードしてお使いください。ファイルは、ノートンインターネットセキュリティにて検査済みですので、安心してお使い頂けます。

 ●練習用ファイル
 練習用ワークブック(xlsm形式)

作業手順 
1.最初に、ワークブックのバックアップを作成します。ファイルを別な名前でコピーしておけばOKです。

2.ワークブックの拡張子をzipに変更し、Windowsにzip書庫として認識させます。

3.zip書庫をダブルクリックして開き、さらに書庫内の「xl」というフォルダを開きます。


4.xlフォルダを開くと、目的のファイル「vbaProject.bin」が見つかります。これが、VBAプロジェクトを管理するファイルです。

5.vbaProject.binを右クリックし、[コピー]を選択します。

6.戻るボタンなどを使って、zip書庫があるフォルダまで戻ります。


7.何もないところで右クリックし「貼り付け」を選択すると、vbaProject.binが書庫から抽出されます。


8.vbaProject.binをバイナリエディタで開き、「Excel VBAプロジェクトのパスワード復元・復旧方法」を参考にDPBの部分を編集します。例では、「DPB」を「AAA」に書き換える方法を使いました。

9.バイナリエディタ上で、vbaProject.binを保存します。


10.編集後のvbaProject.binを書庫に戻します。vbaProject.binを右クリックしてコピー、書庫内のxlフォルダに進み貼り付けを行ってください。


11.戻るボタンなどを使ってzip書庫があるフォルダまで戻ったら、ワークブックのファイル名を元に戻します。


12.ワークブックをExcelで開きます。マクロを有効にすると、エラーメッセージが表示されますが、気にせず<はい>をクリックしてください。


13.Visual Basic Editorを開きます。このとき、「予期せぬエラーが発生しました(40230)」のエラーが出ても、気にせず<OK>をクリックします。

14.VBAプロジェクトを右クリックし、「VBAプロジェクトのプロパティ」を選択し「プロジェクトプロパティ」を開きます。


15.VBAプロジェクトで「保護」タブを開きます。

16.この次点では、パスワードは入力されていません。


17.パスワードをリセットするため、新たにパスワードを設定します。1などでよいでしょう。

18.最後に、<OK>をクリックしてパスワードの再設定を反映します。


19.パスワードの再設定が完了すれば、ソースコードが開けます。あとは、煮るなり焼くなり好きなようにどうぞ。



Copyright(C) 1999-2015 結城圭介(Ver.3.51) All rights reserved