いつものようにネット(はてブ)をぼんやりと見ていたらこんな記事があった。
この話、割と有名な話だと思いつつ「同じような手順でパスワード解除することもできる」とコメントしたところ存外スターを頂いたので、一応手順を残しておきたい。
「シート保護がされているxlsxのパスワードを忘れてしまった」(案外多いのだ、そういう問い合わせ)といった時参照していただけば幸いである。
今回は「前任者が残したNW図を編集しようと思ったらシート保護がされていた」という想定でいこう。
①ファイルの拡張子をxlsx→zipへ変更する。
②任意のソフトを用いて解凍する。
③解凍すると以下のようなフォルダが生成される。
④「xl」フォルダを開く。以下のような構造が展開される。
⑤「worksheets」フォルダを開く。以下のような構造が展開される。
⑥「sheet1.xml」を任意のエディタで開く。
⑦「sheetProtection」の文字列を検索する。以下のようなセクションがヒットするだろう。*1
⑧「sheetProtection」のセクションを削除する。
⑨「sheet1.xml」を上書き保存し、③で解凍されたフォルダ全てを選択してzipファイルへ圧縮する。
⑩生成されたzipファイルの拡張子をxlsxへ変更する。
⑪シートのパスワード保護を解除することができた。
ちなみに7zipをつかうと解凍せずともzipファイルの中身を直接触ることができるので、慣れていればこっちの方が楽かもしれない。
この方法でパスワード解除ができるのはあくまで「ワークシートがパスワード保護されている場合」であって、ファイルそのものがパスワード保護されている場合はどうにもならないのではあるけれど。
*1:このセクションをよく見るとSHA-512でパスワードが暗号化されていることがわかる。さすがに平文でパスワードを載せるようなことはしてないのだ。頑張ればここから復号化することもできそうではあるけれど、おそらくsheetProtectionセクションを削除する方が早い。