エクセルで作業をしていて困るのが、謎の自動計算やシート保護。作成当初に電算担当者が良かれで設定したのでしょうが、後の入力者にとっては迷惑極まりないブラックボックスと化します。
今回はパスワードで保護されたシートを強制解除する方法がわかりましたので、備忘録兼ねて書き出したいと思います。
概要
年度末に終了する契約の関係書類を作成していると、年号を「平成」から「令和」に書き換える必要のある箇所が散見されました。単語検索をかけて書き換えようとすると次のようなダイアログが出てきました。
どうやら契約関係の様式ということで、最低限の金額や日付以外の箇所にロックがかかっているようです。
解除のためのパスワードを要求されますが、当然わかりません。
こういうときは内部ネットワークに新しい書類様式が入っていて然るべきですが、入っておらず。電算担当者も出張中。ブチ切れそうになりながらもパスワードを強制解除する方法を調べて実行しました。
作業方法
この方法は「.xlsx」などのファイルが圧縮ファイルと同じ構造であることを応用しているそうです。タブの集合体だから圧縮ファイル扱いになるのでしょうか。詳しいことは分かりませんが、スゴい着眼点です。
手順1:ファイル拡張子を.xlsxにする
脈々と受け継がれている古いファイルは「.xls」形式であることが多いです。この形式では今回ご紹介する方法は実行できませんので、ファイル形式をサクッと変更します。
基本は「.xlsx」で保存し直すだけでOKです。
手順2:ファイル拡張子を.zipにする
これは圧縮ソフトを使うとかではなく、そのまま「.xlsx」を「.zip」に書き換えます。アラートが出ますが無視して大丈夫です。
手順3:zipを開く
普通にクリックするとzipファイルが解凍されてしまいますので「エクスプローラー」などで圧縮を展開せずに直接アクセスする形で開きます。
手順4:目的のファイルにアクセス
「xl」→「worksheets」の順にフォルダを開いていきます。
「sheet◯◯.xml」ファイルがありますが、これはタブの順番で番号が振り分けられています。左から5番目のタブのパスワードを解除したいなら「sheet5」を選択します。
手順5:sheetファイルを編集
zip内のsheetファイルは直接編集できませんので、一旦コピーして取り出します。その後、このファイルをテキストエディターで開いて編集します。最初からインストールされているメモ帳を使うのが簡便な方法でしょう。
書き換える箇所は「<sheetProtection 〜〜/>」の箇所です。これを丸ごと削除します。「Ctrl」+「F」の検索ですぐに見つかると思いますが「シートプロテクション」ってクッソわかりやすい名前で面白いですね。
手順6:ファイルをもとに戻す
保存したsheetファイルをzip内に上書きし、ファイル形式を「.zip」から「.xlsx」に書き直します。 これで作業完了です。
一応ファイルがちゃんと開けるか、表示がおかしくなっていないかチェックしましょう。
最後に…
こういった小手先のテクニックはイザというとき便利ですが、保護を解除する=本来想定していない場所まで書き換えられる可能性のあるファイルになるということです。したがって、このようなファイルは内部系のネットワークで流通させるべきではなく、自分が使うだけに留めておくべきでしょう。
様式ファイルが然るべきところに整理されていないというのは腹立たしいですが、その辺りはお互い様ということで担当者に新しいファイルを用意してもらうよう依頼しておきましょう。
今回はここまで。