ブックの保護を強制的に解除する

【Excel】見積書の価格表を載せたシートは顧客に見られたくない!エクセルで特定のシートを非表示にしてパスワードをかけるテク

ブック保護のパスワードが分からなくなっても、強制的に解除することは可能です。

1. Excelのファイルをxlsxで保存する

2. ファイルの拡張子をxlsxからzipに変更する
実はxlsx形式のファイルは、zipファイルの中にxml形式のデータが格納したものです。

3. Explzhなどの解凍ツールを用いて開く

4. xl\workbook.xmlをメモ帳などで編集し「<workbookProtection~/>」を削除

5. zipファイルのxl\workbook.xmlを編集したもので置き換える。
必ず元のzipファイルに対して操作を行い、ファイルを置き換えてください。新規にzipファイルを作成して、拡張子をxlsxに変えても、プロパティ情報などの違いからxlsxファイルをは認識されません。

6. 拡張子をzipからxlsxに戻す

7. Excelでファイルを開く
Excelでファイルを開くときに、ファイルが壊れている旨の警告が表示されますが「はい」を選択して、ファイルを修復してください。これでパスワードが解除された状態になります。

BookやSheetの保護パスワードは、元データを暗号化しているわけではありません。もし暗号化していたら、Excelの式で参照することもできなくなりますからね。パスワードは暗号化されているので元のパスワードは分かりませんが、パスワードを設定するという属性ごと削除してしまえば、パスワードを解除できます。

内容を見たいだけなら「非表示のシート名!A1」といった式を書くだけでも、簡単に内容を確認できます。

顧客に見られても良い情報と、見られて困る情報を混在させる、良い方法というのはありません。仮にデータが暗号化されて保存される使用だったとしても、パスワードが漏洩している可能性だってあります。無駄にリスクを増やすよりも、素直に削除するなり、ExcelならPDF形式にエクスポートするなりといった方法を選びましょう。

PS…
zipファイルとして解凍してしまうテクニックは「複雑な正規表現置換をしたい」といった用途にも使えますので、知ってると便利です。