Q1:古い「.xls」形式のファイルでもZip書き換えは使えますか?
A1:使えません。「.xls」形式(Excel 97-2003)はバイナリ構造であるため、Zip解凍によるXML抽出が不可能です。古いファイルの場合は、一度Excelで開いて「名前を付けて保存」から最新の「.xlsx」形式に変換してからZip化作業を行うか、互換性のあるVBAコードによる解除を試みてください。
Q2:シート保護だけでなく「ブックの保護」も同じ方法で解除できますか?
A2:可能です。ブックの保護を解除する場合は、「xl」フォルダ直下にある「workbook.xml」をテキストエディタで開き、中にある <workbookProtection ... /> というタグを丸ごと削除して保存・再圧縮することで解除されます。
Q3:XML編集後に拡張子を戻したら「ファイルが壊れています」とエラーが出ます。
A3:タグの削除範囲を誤っているか、圧縮する階層が間違っていることが原因です。フォルダの外側ごと圧縮するのではなく、展開されたフォルダの「中身([Content_Types].xml や xlフォルダなど)」を直接選択してZip圧縮してください。また、タグを削除する際は <sheetProtection の開始から /> の閉じ部分までを正確に切り取っているか確認してください。