Excelのシート保護は安全ではない

Excelのブックを配布するとき、シートやブックに保護をかけて配ることがあります。しかし、これは安全ではありません。

シート保護のかけ方

シートに保護をかけるには、

①シートタブで右クリック→②シートの保護を選ぶ→③パスワードを入力→④OK

シートの保護

シートの保護のダイアログ。③パスワードを入れて④OKを押せば、このシートは保護される。

ブックの保護のかけ方

ブックに保護をかけるには、

①校閲タブ→②ブックの保護→③パスワードを入れてOK

ブックの保護

簡単に解除できる

シートの保護もブックの保護も、解除するにはパスワードが必要です。

しかし、パスワードがなくても簡単に解除できます。

やり方は、ブックの保護解除もシートの保護解除も途中まではいっしょで、

ブックの拡張子を.zipにする→アプリから開くで「エクスプローラー」を選ぶ

です。

ブックの保護の解除

ブックの保護を解除したいときは、xl\workbook.xmlを編集します。

workbook.xmlの場所

圧縮フォルダのままだと編集できないので、どこかにコピーしてテキストエディタで編集する→

テキストエディタで開いた状態

workbookProtectionのタグをごそっと削除する→文字コードに気をつけつつ保存→元のエクスプローラーに戻す→拡張子.zipを解除(元のExcelに戻す)

これでブックの保護は解除できます。

このあたりのやり方は、Web上にありふれているので、本記事ではこれ以上詳細には説明しません。

シート保護の解除も同様です。

シートの保護の解除

シートの場合は、xl\worksheets\sheet1.xmlの

sheet1.xml

sheetProtectionタグを全部削除します。

VBAProjectの保護も解除できる

シート保護、ブック保護だけではなく、VBAProjectの保護も解除できます。

様々な方法がありますが、私がよく使うのはパスワード評価関数の戻り値を変更する手法です。

本稿では論点がずれてしまうので、詳細なやり方は紹介しませんが、巷にあふれていますので、興味がある方(必要に迫られている方)は検索してみてください。簡単にヒットしますので、リンクもここには載せません。

なぜ簡単に解除できてしまうのか

Excelの保護がなぜ簡単に解除できてしまうのかというと、セキュリティを意図したものではないからです。これは、Microsoft社自身が言っていることです。

ワークシート レベルの保護は、セキュリティ機能を意図したものではありません。 単に、ユーザーがワークシート内でロックされたセルを変更できないようにするためのものです。

Excel の保護とセキュリティ

正式に商用としてリリースするものであれば、Excelを選択してはいけないのだと個人的には考えます 。

このあたり、給与第一ではどう解決しているかというと、さすが弁護士さんというか、法的手法で予防しています。

「給与第一」著作権の表示と免責事項、利用基準

10万円か・・・・高いですね。しかも1件につきですから、何件も使っていれば相当な金額を請求されてしまうことになります。

これを読んで、給与第一を使おうと思う社労士さんはいないと思います。私も、昔このソフトの存在を知ったときは、なんてすごいんだ!と感動し、ぜひ使いたいと思いましたが、この利用基準を読んでやめました。

残業代計算ソフト給与第一