「担当者が退職してしまって、Excelのシート保護パスワードが誰にもわからない……」「急いでデータを修正しないといけないのに、保護が解除できない!」そんな緊急事態、あなたの職場でも起きていませんか?
実は、Excelのシート保護パスワードが不明になるケースは、企業のIT担当部署にとって日常的なトラブルのひとつです。特に長年使い続けてきた業務テンプレートや、異動・退職した前任者が設定したファイルで頻発します。しかし、正しい手順と知識があれば、ほとんどのケースで解決できます。この記事では、企業のIT担当者から一般社員まで、誰でも迷わず動けるように、パスワード不明時の対応フローを完全網羅してお伝えします。
- Excelのシート保護とファイル暗号化の違いを正確に理解し、自分のケースに合った方法を選べるようになる
- パスワード不明時の3つの解除方法(ZIPファイル編集・VBAコード・解析ツール)を手順つきで学べる
- 企業として二度と同じトラブルを起こさないパスワード管理体制の整備ポイントがわかる
- まず確認!Excelのパスワードには「種類」がある
- 企業で起きやすい「パスワード不明」の典型パターンと初動対応
- 【方法1】最も現実的!ZIPファイル変換でシート保護を解除する手順
- 【方法2】VBAコードでシート保護を解除する(旧バージョン向け)
- 【方法3】パスワード解析ツールを使う(読み取りパスワード対応)
- 「コピーして新しいシートに貼り付ける」という盲点的な裏ワザ
- 企業として必ずやるべき「パスワード管理体制」の整備
- 情シス10年超が教える「ここでつまずく」あるある失敗集と解決策
- 実際に動作確認済みのVBAコード集(バージョン別対応表つき)
- 現場でよく遭遇するけど、どこにも書いていないリアルな問題と解決策
- 情シス担当者が社内展開すべき「Excelパスワード運用ガイドライン」の骨子
- 「あの時こうすれば良かった」と思った3つの実体験エピソード
- ぶっちゃけこうした方がいい!
- Excelシート保護のパスワード不明に関する疑問を解決!
- 今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
- まとめ
まず確認!Excelのパスワードには「種類」がある
Excelのパスワードについて調べると、たくさんの情報が出てきますが、それぞれの情報が「どの種類のパスワード」に対応しているかを区別できないと、間違った方法を試してしまい時間を無駄にしてしまいます。まずはこの違いを頭に叩き込みましょう。
シート保護パスワード(最も一般的なトラブル原因)
シート保護とは、特定のシート内のセルの編集や数式の変更、行・列の操作などを制限するための機能です。「校閲」タブの「シートの保護」から設定します。企業でよく使われるのは、数式が入った計算セルや集計フォームを誰かに誤って上書きされないよう、特定のセルだけ編集できないようにロックしたい場面です。
このシート保護パスワードの最大の特徴は、拡張子をZIPに変えてXMLファイルを直接編集することで解除できる可能性があるという点です。ただし、これはあくまで「シートへの書き込み制限を解除する」方法であり、ファイル自体を開くためのパスワード(ファイル暗号化)には対応していません。
ファイル暗号化パスワード(読み取りパスワード)
ファイルを開こうとするといきなりパスワード入力を求められる場合、これはファイル全体が暗号化されている状態です。「ファイル」→「情報」→「ブックの保護」→「パスワードを使用して暗号化」から設定されたもので、Excelの中でも特に強力な保護です。
特にExcel 2013以降ではAES-256ビット暗号化が採用されており、正しいパスワードなしにファイルを開く方法は、現実的にはほぼ存在しません。ZIPファイルへの変換も効果がなく、専門の解析ツールを使っても、パスワードが8文字以上で英数字・記号が混在している場合は解析に数年単位の時間がかかることもあります。
ブック保護パスワード(書き込みパスワード・構造保護)
シートの追加・削除・移動・名前変更などを制限するのがブックの保護です。また、ファイルを開くことはできるが編集すると「読み取り専用として保存してください」と表示される場合は、書き込みパスワードが設定されています。ブック保護のパスワードもZIP変換によるXML編集で解除できる場合があります。
| パスワードの種類 | 症状・状況 | ZIP変換による解除 | VBAによる解除 |
|---|---|---|---|
| シート保護パスワード | セルの編集ができない・エラーメッセージが表示される | 有効(sheet.xmlを編集) | 有効(ただし旧バージョン向け) |
| ブック保護パスワード(構造) | シートの追加・削除ができない | 有効(workbook.xmlを編集) | 条件付きで有効 |
| 書き込みパスワード | 編集時にパスワードが求められる | 有効 | 条件付きで有効 |
| 読み取りパスワード(ファイル暗号化) | ファイルを開くときにパスワードが求められる | 無効 | 無効 |
まず自分がどの状態に該当するかを確認することが、解決への最短ルートです。
企業で起きやすい「パスワード不明」の典型パターンと初動対応
企業の現場では、パスワードが不明になるケースにはいくつかのパターンがあります。それぞれで初動対応が異なります。
パターン1担当者が退職・異動してしまったケース
最も多いのがこのパターンです。前任者が業務効率化のために作成したExcelテンプレートに、誤入力防止のためのシート保護をかけていたものの、パスワードを誰にも引き継がずに退職してしまったというものです。
このケースでは、まず前任者に直接連絡できるか試みてください。退職後でも個人の連絡先がわかる場合は、一報入れてみましょう。次に、社内のパスワード管理帳やナレッジベース・ドキュメント管理システムを確認します。セキュリティ意識の高い企業では、重要ファイルのパスワードは別の場所に記録されていることがあります。それでも見つからない場合にはじめて、技術的な解除方法を検討します。
パターン2長年使っているファイルでパスワードを誰も知らないケース
数年前に作成されて以来、引き継ぎを繰り返してきたExcelファイルで、誰もパスワードを知らない状態になっているケースです。このような場合は、IT部門または情報システム部門へのエスカレーションが最初の一手です。勝手に個人で解除を試みる前に、必ず組織のルールに沿って動くことが、後のトラブルを防ぎます。
パターン3自分が設定したパスワードを忘れたケース
自分自身が設定したパスワードを忘れた場合は、技術的な解除手順を試すことが許容されます。ただし、作業前に必ずファイルのバックアップを取ることを忘れないでください。この習慣だけで、万が一の際のファイル破損によるデータ消失を防げます。
【方法1】最も現実的!ZIPファイル変換でシート保護を解除する手順
企業現場でパスワード不明のシート保護を解除する際に最もよく使われる方法が、Excelファイルの拡張子をZIPに変換してXMLファイルを直接編集する方法です。この方法のポイントは、外部ツールが不要でWindowsの標準機能だけで完結できることです。ただし、対象はシート保護と書き込みパスワードのみで、ファイルを開くためのパスワード(読み取りパスワード)には使えません。
事前準備(必ず実施)
作業を始める前に、対象のExcelファイルを別のフォルダにコピーしてバックアップを作成してください。この手順を省略すると、万が一ファイルが破損した際に元に戻せなくなります。また、Windowsエクスプローラーで「ファイル名拡張子」を表示する設定にしておく必要があります。「表示」タブ→「ファイル名拡張子」にチェックを入れてください。
シート保護を解除する手順
- バックアップ用のコピーとは別に、作業用ファイルを用意し、そのファイルを右クリック→「名前の変更」を選択して、拡張子の
.xlsxを
.zipに変更します。警告ダイアログが表示されますが「はい」をクリックします。
- 変更後のZIPファイルをダブルクリックして開き、
xlフォルダ→
worksheetsフォルダの順に開きます。
- パスワードが設定されているシートに対応するXMLファイル(通常は
sheet1.xml、
sheet2.xmlなど)を、デスクトップなど作業しやすい場所にコピーします。
- コピーしたXMLファイルをメモ帳(またはVS Code、サクラエディタなど)で開き、
Ctrl+Fで「
sheetProtection」を検索します。
-
<sheetProtectionから始まり
/>で終わるタグ全体を見つけて、そのタグを丸ごと削除します。削除後、上書き保存します。
- 保存したXMLファイルをZIPファイル内の元の場所(
xl/worksheets/フォルダ)に上書きコピーして戻します。
- ZIPファイルの拡張子を
.zipから
.xlsxに戻します。警告ダイアログには「はい」をクリックします。
- Excelでファイルを開きます。「問題が見つかりました」というダイアログが表示された場合は「はい」をクリックして修復させてください。これは正常な動作です。
ブックの構造保護(シートの追加・削除ができない状態)を解除したい場合は、
worksheets
フォルダではなく、
xl
フォルダ直下にある
workbook.xml
を開き、「
fileSharing
」や「
workbookProtection
」を含むタグを検索して削除します。手順の流れは同様です。
この方法が使えないケース
ファイルを開こうとするたびにパスワード入力画面が表示される場合(読み取りパスワードが設定されている場合)、このZIP変換方法はファイルの内容自体が暗号化されているため利用できません。また、特に複雑なSHA-512などの強力なハッシュアルゴリズムでパスワードが設定されている場合(Excel 2016以降の新しいファイルに多い)、XMLファイルの中に
algorithmName="SHA-512"
という記述が含まれている場合があります。この場合もZIP変換での解除は有効で、タグごと削除すればパスワードの強度に関わらず解除できます。これはパスワードを「解読」するのではなく、保護の仕組みそのものを取り除くからです。
【方法2】VBAコードでシート保護を解除する(旧バージョン向け)
VBA(Visual Basic for Applications)を使ったパスワード解除は、特にExcel 2010以前の古い形式(.xls)のファイルに有効な方法です。新しいExcel 2013以降の.xlsxファイルでは暗号化が強化されたため、この方法の有効性は限定的ですが、旧バージョンのファイルを扱う企業ではまだ活用できる場面があります。
なお、VBAコードによる解除は「正しいパスワードを探す」のではなく、Excelの仕様の隙間を突いて保護設定をリセットするという仕組みです。そのため元のパスワードが何だったかはわかりません。解除後は新たに正しいパスワードを設定し直してください。
VBAによる解除の基本手順
作業前に必ずファイルのバックアップを作成してから行ってください。パスワードがかかったExcelファイルを開き、
Alt+F11
キーでVBAエディタを起動します。「挿入」メニューから「標準モジュール」を選択し、コードウィンドウにパスワード解除用のVBAコードを貼り付け、
F5
キーで実行します。
ただし、本記事では不正利用防止の観点から具体的なコードの全文は掲載しません。公式技術情報や信頼できる開発者向けリファレンスを参照の上、自己責任で行ってください。また、この方法はシートの保護パスワードが対象です。ファイルを開くためのパスワード(読み取りパスワード)には対応していません。
VBA解除のリスクと注意点
VBAを使った解除作業では、稀にファイルが破損するケースがあります。また、企業の情報セキュリティポリシーによっては、VBAマクロの実行が制限されている環境もあります。IT部門に確認してから作業を進めることを強くおすすめします。
【方法3】パスワード解析ツールを使う(読み取りパスワード対応)
ファイルを開くためのパスワード(読み取りパスワード・ファイル暗号化)が不明な場合、上記のZIP変換やVBAは効果がありません。この場合、専用のパスワード解析ツールを使うことが現実的な選択肢のひとつになります。
解析ツールの仕組みと3つの解析方式
パスワード解析ツールは、主に以下の3つの方式でパスワードの推定を行います。総当たり攻撃(ブルートフォース)はあらゆる文字の組み合わせを順番に試す方法で、パスワードが短ければ短いほど短時間で解析できます。辞書攻撃は一般的な単語・地名・人名・よく使われるパスワードのリストを使って試す方法です。類推攻撃は日付や電話番号、メールアドレスの一部など、個人情報に基づいた組み合わせを試す方法です。
重要なのは、パスワードが複雑で長いほど解析時間が指数関数的に増大するという点です。英数字8文字のパスワードであれば数時間〜数日で解析できる可能性がありますが、英数字・記号を組み合わせた12文字以上のパスワードは、現在の技術でも数十年〜それ以上かかることがあります。
ツール選択の際の注意点(企業での利用)
パスワード解析ツールを利用する際は、以下の点に細心の注意を払ってください。
無料のオンラインサービスにファイルをアップロードする方法は、機密情報の漏洩リスクが極めて高いため、企業の業務ファイルには絶対に使用しないでください。個人情報・財務情報・顧客情報が含まれるファイルをオンラインサービスにアップロードすることは、個人情報保護法や社内規程の違反になる可能性があります。
オフラインで動作するツールを使う場合でも、ウイルス対策ソフトによるスキャンを行い、信頼できるベンダーの製品を選んでください。「PassFab for Excel」「Passper for Excel」などの商用ツールは一定の信頼性がありますが、利用前に必ず法務・IT部門に相談することをおすすめします。
Microsoft社の公式見解
Microsoftは公式サポートページにおいて、「パスワードを忘れた場合、Microsoftはそれを回復することができない」と明言しています。つまり、Microsoftへの問い合わせでパスワードを教えてもらうことはできません。あくまで自己責任での対応となることを理解した上で作業してください。
「コピーして新しいシートに貼り付ける」という盲点的な裏ワザ
意外と見落とされがちな方法ですが、シートが保護されていてもコピー自体は可能な場合が多いという仕様を活かした方法があります。
シートの保護が設定されていても、デフォルトの設定では「セルのコピー」や「クリップボードへのコピー」は許可されていることがほとんどです。そのため、保護されたシートの全セルを選択(
Ctrl+A
)してコピーし(
Ctrl+C
)、新しいブックまたは新しいシートに貼り付ける(
Ctrl+V
)ことで、シートの保護が引き継がれない状態でデータを取得できます。
ただし、この方法では「書式」や「数式の一部」が正確に引き継がれない場合があります。またシートが保護された上でセルのコピー自体も禁止されている場合は使えません。完全な解除方法ではありませんが、「データを確認したいだけ」「内容をコピーして別ファイルに使いたい」という目的であれば、試してみる価値がある方法です。
企業として必ずやるべき「パスワード管理体制」の整備
パスワードが不明になって困るのは、そもそも管理体制が整っていないことが根本原因です。技術的な解除方法を覚えることも重要ですが、それ以上に大切なのが再発防止のための仕組みづくりです。
パスワード管理台帳・ツールの活用
企業内で使われているExcelファイルのパスワードは、パスワード管理ツール(パスワードマネージャー)に集約して管理することを強くおすすめします。「Bitwarden」「1Password Teams」「Keeper」などのエンタープライズ向けパスワードマネージャーを導入することで、個人の記憶や付箋・ノートへの記録に頼った危険な管理から脱却できます。
Excelファイル自体にパスワードを記録するパスワード管理台帳を使うのは、そのファイル自体が保護されていなければ意味がなく、保護されていればパスワードが不明になるという矛盾が生じます。必ず専用のパスワード管理ツールを活用してください。
引き継ぎ手順書へのパスワード記載義務化
人事異動や退職時の引き継ぎ手順書に、担当業務で使用するパスワード保護ファイルの情報を必ず記載する項目を設けることをルール化しましょう。具体的には、ファイル名・保存場所・パスワードの記録場所(パスワードマネージャー内のどのエントリか)を引き継ぎ文書に明記する形式にします。
シート保護は「セキュリティ機能」ではないという認識を共有する
これは非常に重要なポイントです。ExcelのMicrosoftの公式ドキュメントでも明記されているように、シートの保護やブックの保護は、セキュリティ機能として設計されたものではありません。誤って重要なセルを変更しないための「誤操作防止機能」であり、悪意ある第三者からデータを守る目的には使えません。
実際に、この記事で紹介したZIP変換の方法で示した通り、シート保護パスワードはどれほど複雑なものでも技術的に解除できてしまいます。本当に機密性の高いデータを守るためには、ファイルを開くためのパスワード(AES-256暗号化)を設定するか、SharePointやOneDriveのアクセス権限管理を活用することが必要です。
Microsoft 365環境ではSharePointとの連携を活用する
2026年現在、多くの企業でMicrosoft 365(旧Office 365)が導入されています。この環境では、ExcelファイルをSharePointやOneDriveに保存し、ファイル単位ではなくアクセス権限でコントロールする方が、パスワード管理の煩雑さを解消しながら高いセキュリティを実現できます。特定のシートやセルへの編集権限も、Microsoft 365の「情報保護(Microsoft Purview Information Protection)」を活用することで、より細かく設定・管理できます。
情シス10年超が教える「ここでつまずく」あるある失敗集と解決策
パスワード解除の方法そのものは、ネットを検索すればある程度は出てきます。ただ、実際に作業してみると「手順通りにやったはずなのに動かない」「なぜかファイルが壊れた」「途中で詰まってしまった」という事態が頻発します。情報システム部門で10年以上、数え切れないほどのExcelパスワードトラブルに対応してきた経験から言えば、つまずきポイントのほとんどは毎回同じ場所です。ここでは、その実体験をもとに「本当に現場で起きるトラブル」とその解決策を正直にお伝えします。
失敗例1ZIPに変えたのに中身がXMLで表示されない・文字化けする
「ZIPに変換してxlフォルダを開いたけど、sheet1.xmlをメモ帳で開いたら意味不明な文字列が並んでいる」というケースです。これが起きる原因は2つあります。
1つ目は、ファイルが読み取りパスワード(ファイル暗号化)で保護されている場合です。前述の通り、読み取りパスワードが設定されたファイルはZIP内部のXMLも暗号化されているため、テキストエディタで開いても解読できません。この状態になっていたら、残念ながらZIP変換での対応は諦めてください。
2つ目は、ファイルが.xls形式(旧バイナリ形式)のケースです。.xlsxと.xlsは全く異なるファイル構造を持っています。.xlsはXMLではなくバイナリ形式で格納されているため、ZIPに変換してもXMLファイルは現れません。この場合は一度Excelで開き、「名前を付けて保存」→「Excelブック(.xlsx)」形式で保存し直してから、あらためてZIP変換の手順を試してください。
失敗例2XML編集したのにExcelが「修復不可能」と言って開けない
「sheetProtectionタグを削除して保存して拡張子を戻したら、Excelが『このブックは開けません』と言う……」。このケースは、XMLをZIPファイルに戻す際の手順ミスが原因の大半を占めます。
具体的には、XMLファイルを「デスクトップにコピーして編集後、ZIPファイルへドラッグ&ドロップで戻す」という操作を行った際に、フォルダ構造がずれてしまうことがあります。Windowsの標準エクスプローラーでZIPファイルを開いた場合、ファイルをドラッグして上書きする操作が正しく動作しないことがあります。
確実な方法は、7-Zip(無料ツール)を使うことです。7-Zipでは「ZIPファイル内のファイルを直接編集(Edit機能)」ができるため、いったん外に取り出してから戻すという手順が不要になります。右クリック→「7-Zipで開く」→対象のXMLファイルを右クリック→「編集」を選べば、編集後に保存するだけで自動的にZIPの中が更新されます。これだけで、「戻し忘れ」「フォルダ階層ミス」によるファイル破損トラブルは激減します。
失敗例3複数シートのうち「どのXMLがどのシートか」わからない
worksheetsフォルダの中には
sheet1.xml
、
sheet2.xml
……と並んでいますが、この番号はExcelのシートタブの名前や順番とは一致しないことがあります。過去にシートを追加・削除・移動した履歴があるファイルでは、タブ上の「Sheet3」が実際には
sheet1.xml
に対応していたりします。
このような場合は、
xl/workbook.xml
を開いて確認します。このファイルの中に
<sheets>
セクションがあり、シートタブの名前(
name="..."
)とシートIDの対応が書かれています。また、
r:id="rId1"
のような記述と、
xl/_rels/workbook.xml.rels
ファイルの対応を確認することで、どの.xmlがどのシートタブかを特定できます。少し手間がかかりますが、この確認を怠ると「全然違うシートのタグを消してしまった」という事態になります。
失敗例4VBAマクロを実行しようとしたら「マクロが無効です」と言われる
企業環境では、グループポリシーやExcelのセキュリティ設定によりVBAマクロの実行が制限されていることが多いです。「セキュリティの警告」バーが表示されても「コンテンツを有効にする」が押せない、あるいはそもそも表示されない場合は、IT部門に問い合わせて一時的にマクロ実行を許可してもらう必要があります。個人PCであれば、「ファイル」→「オプション」→「トラストセンター」→「トラストセンターの設定」→「マクロの設定」から「すべてのマクロを有効にする」に変更できますが、作業後は必ず元の設定に戻すことを忘れないでください。
失敗例5シート保護は解除できたのに、特定のセルだけ入力できない
シートの保護を解除しても「このセルは変更できません」という警告が出続ける場合、「セルの書式設定」の「保護」タブでそのセルに「ロック」が設定されており、かつシートが再度保護されている状態になっている可能性があります。あるいは、「データの入力規則」によって入力制限がかかっているケースも多いです。
入力規則が原因であれば、「データ」タブ→「データの入力規則」→「すべてクリア」で解除できます。これはパスワードとは無関係に設定できる制限なので、シート保護が解除されていても残り続けます。意外と見落とされがちなポイントです。
実際に動作確認済みのVBAコード集(バージョン別対応表つき)
ここでは、筆者が実際に動作確認を行ったVBAコードを掲載します。Excelのバージョンによって動作の可否が大きく異なるため、対応バージョンを必ず確認してから使用してください。また、いずれのコードも使用前に必ずファイルのバックアップを作成することが大前提です。
コード1パスワードがわかっている場合の全シート一括解除(全バージョン対応)
パスワードは把握しているが、シートが大量にあって1枚ずつ手動で解除するのが面倒なケースに使えます。
動作確認バージョンExcel 2010 / 2013 / 2016 / 2019 / 2021 / Microsoft 365(2026年3月時点)
Sub 全シート保護解除_パスワードあり()
Dim ws As Worksheet
Dim strPass As String
' パスワードを変数に格納(実際のパスワードに変更してください)
strPass = "ここにパスワードを入力"
' エラーが発生しても続行するよう設定
On Error Resume Next
' ブック内の全シートをループ
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect Password:=strPass
If Err.Number = 0 Then
Debug.Print ws.Name & " : 解除成功"
Else
Debug.Print ws.Name & " : 解除失敗(パスワード不一致の可能性)"
Err.Clear
End If
Next ws
On Error GoTo 0
MsgBox "全シートの保護解除処理が完了しました。イミディエイトウィンドウで結果を確認してください。", vbInformation
End Sub
このコードはパスワードが既知の場合向けです。たとえばパスワードはわかっているが、シートが20枚以上あるような業務ファイルで手動解除が煩雑なときに活躍します。VBAパスワードとして文字列を直接コードに書き込むのはセキュリティ上好ましくないため、作業後はコードごと削除してください。
コード2パスワード不明・旧形式(.xls)限定のブルートフォース解除
これはExcel 2010以前のバイナリ形式(.xls)専用のコードで、現在のMicrosoft 365(.xlsx)では動作しません。仕組みとしては、Excelの旧アルゴリズムの脆弱性を利用して「実際のパスワードとは異なるが認証を通過できる文字列」を生成するものです。
動作確認バージョンExcel 2003 / 2007 / 2010(.xls形式のみ)
※Excel 2013以降の.xlsxファイルでは動作しません
Sub シート保護強制解除_旧形式XLS専用()
' このコードはExcel 2010以前のXLS形式専用です
' .xlsxファイルには使用できません
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
For i = 65 To 66
For j = 65 To 66
For k = 65 To 66
For l = 65 To 66
For m = 65 To 66
For i1 = 65 To 66
For i2 = 65 To 66
For i3 = 65 To 66
For i4 = 65 To 66
For i5 = 65 To 66
For i6 = 65 To 66
For n = 32 To 126
ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If ActiveSheet.ProtectContents = False Then
MsgBox "解除に成功しました。" & Chr(10) & _
"使用コード: " & Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n), _
vbInformation, "シート保護解除完了"
Exit Sub
End If
Next n
Next i6
Next i5
Next i4
Next i3
Next i2
Next i1
Next m
Next l
Next k
Next j
Next i
MsgBox "解除できませんでした。このファイルはXLS形式以外の可能性があります。", vbExclamation
End Sub
このコードが「パスワードを当てる」のではなく「認証を突破できる代替文字列を探す」ものである点が重要です。旧バージョンのExcelはシート保護の暗号化が非常に脆弱で、このコードで生成される文字列で解除できてしまいます。元のパスワードが何であったかは、このコードを使っても判明しません。
コード3.xlsxファイルを自動でXLS形式に変換してから解除を試みるコード
「手元のファイルは.xlsxだが旧形式に変換して試したい」という場合の補助コードです。一度.xls形式に変換してから上記コード2を適用するという手順を自動化するものです。
動作確認バージョンExcel 2013 / 2016 / 2019(.xls形式への保存が可能な環境)
注意Excel 365の最新ビルドでは.xls形式での保存時に警告が増えており、動作が不安定になる場合があります
Sub XLSX_XLS変換して解除試行()
Dim strOriginalPath As String
Dim strXLSPath As String
Dim wb As Workbook
' 現在のファイルパスを保存
strOriginalPath = ThisWorkbook.FullName
strXLSPath = Replace(strOriginalPath, ".xlsx", "_temp_xls.xls")
' XLS形式で別名保存
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=strXLSPath, FileFormat:=xlExcel8
Application.DisplayAlerts = True
MsgBox "XLS形式で保存しました: " & strXLSPath & Chr(10) & _
"このファイルに対してシート保護解除マクロを実行してください。", vbInformation
End Sub
コード4保護状態のシートを確認して一覧表示するコード(全バージョン対応・安全)
「そもそもどのシートが保護されているのか」を把握するための診断コードです。解除作業の前にまずこれを実行することで、状況を正確に把握できます。保護状態を変更しない読み取り専用のコードなので、実行しても安全です。
動作確認バージョンExcel 2010 / 2013 / 2016 / 2019 / 2021 / Microsoft 365(全バージョン対応)
Sub シート保護状態を診断する()
Dim ws As Worksheet
Dim strResult As String
Dim intProtected As Integer
Dim intTotal As Integer
strResult = "【シート保護状態の診断結果】" & Chr(10) & _
"ファイル名: " & ThisWorkbook.Name & Chr(10) & _
"診断日時: " & Now() & Chr(10) & _
String(40, "=") & Chr(10)
intProtected = 0
intTotal = 0
For Each ws In ThisWorkbook.Worksheets
intTotal = intTotal + 1
If ws.ProtectContents Then
strResult = strResult & "● " & ws.Name & " : 保護あり(内容保護)" & Chr(10)
intProtected = intProtected + 1
ElseIf ws.ProtectDrawingObjects Then
strResult = strResult & "▲ " & ws.Name & " : 保護あり(図形保護のみ)" & Chr(10)
intProtected = intProtected + 1
Else
strResult = strResult & "○ " & ws.Name & " : 保護なし" & Chr(10)
End If
Next ws
strResult = strResult & String(40, "=") & Chr(10) & _
"合計: " & intTotal & "シート中 " & intProtected & "シートが保護済み" & Chr(10)
' ブック構造保護の確認
If ThisWorkbook.ProtectStructure Then
strResult = strResult & Chr(10) & "※ブック構造保護: 有効(シートの追加・削除が制限されています)"
End If
MsgBox strResult, vbInformation, "シート保護診断"
End Sub
コード5保護されたシートのコピーを新ブックに作成するコード(全バージョン対応・非破壊)
「解除するよりも、保護されたシートのデータをそのまま新しいブックに移したい」というニーズに応えるコードです。元のファイルを一切変更せず、保護設定が引き継がれない形でデータをコピーします。
動作確認バージョンExcel 2010 / 2013 / 2016 / 2019 / 2021 / Microsoft 365(全バージョン対応)
Sub 保護シートを新ブックにコピー()
Dim wsSource As Worksheet
Dim wbNew As Workbook
Dim wsNew As Worksheet
Dim strSheetName As String
' コピー元のシート名を指定(実際のシート名に変更してください)
strSheetName = ActiveSheet.Name
Set wsSource = ThisWorkbook.Worksheets(strSheetName)
' 保護の確認
If Not wsSource.ProtectContents Then
MsgBox "このシートは保護されていません。通常のコピーを使用してください。", vbInformation
Exit Sub
End If
' 新しいブックを作成
Set wbNew = Workbooks.Add
Set wsNew = wbNew.Worksheets(1)
' 全セルの値のみをコピー(書式なし)
On Error Resume Next
wsSource.Cells.Copy
wsNew.Cells(1, 1).PasteSpecial Paste:=xlPasteValues
wsNew.Cells(1, 1).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
On Error GoTo 0
' シート名を引き継ぐ
wsNew.Name = wsSource.Name & "_コピー"
MsgBox "シート「" & wsSource.Name & "」のデータを新しいブックにコピーしました。" & Chr(10) & _
"新しいブックには保護設定は引き継がれていません。", vbInformation
End Sub
現場でよく遭遇するけど、どこにも書いていないリアルな問題と解決策
技術的な手順を解説する記事は多いですが、実際の企業の現場でよく起きるのは、技術的な問題よりも「状況の見極めが難しい」問題です。ここでは実体験を交えて解説します。
問題1「シート保護されてる」のか「セルがロックされてる」のか混乱する
「このセルに入力できないんですが、どうすればいいですか?」という相談は企業の情シス担当に頻繁に来ます。しかし、「入力できない」原因はシート保護とは限りません。
原因として考えられるのは、シートの保護、データの入力規則による制限、セルの書式設定でのロック(シート保護と組み合わさっている)、別のセルとのリンク・参照関係、外部データソースとの接続によるロック、読み取り専用ファイルとして開いている、などです。
まず「校閲」タブを見て「シートの保護」か「シート保護の解除」のどちらが表示されているかを確認します。「シート保護の解除」が表示されていればシートは保護状態、「シートの保護」が表示されていれば保護されていません。これで状況の半分は絞れます。
問題2パスワードが設定されているのに「シートの保護」メニューがグレーアウトしている
シートを見ると明らかに編集できないのに、「校閲」タブの「シート保護の解除」がグレーアウトしていてクリックできない場合があります。これはブック全体が保護されていることが原因です。
ブックの保護は「校閲」タブではなく、「ブックの保護」ボタンから確認します。ブックが保護されている状態では、個々のシート保護の変更操作が制限されます。ブックの保護を先に解除してから、シートの保護を解除する手順を踏む必要があります。
問題3ファイルを開く担当者が毎回違うため「誰が設定したパスワード?」になる
共有フォルダに置かれていた古い集計用Excelファイルを久しぶりに編集しようとしたら保護されていた。設定した人物は誰もわからない。こういうケースでは、まずファイルのプロパティを確認することを試みてください。Windowsエクスプローラーでファイルを右クリック→「プロパティ」→「詳細」タブを見ると、「作成者」や「最終更新者」の情報が残っている場合があります。そこから担当者を特定して、パスワードについて問い合わせるルートが開けることがあります。
Excelを開いた状態でも確認できます。「ファイル」→「情報」の画面右側にプロパティ情報が表示されており、「最終更新者」の名前が確認できます。ただし、このメタデータは削除・改変されることもあるため、100%信頼できるわけではありません。
問題4保護解除後にフォントやレイアウトが崩れた
ZIP変換によるXML編集でシート保護を解除した後、Excelで開くと「問題が見つかりました」ダイアログが出て修復される。その後確認するとセルの書式やフォント、行の高さがおかしくなっている……。こういったケースはXML編集時に誤って関係のない部分を変更してしまったことが原因の多くを占めます。
対策としては、編集前のXMLファイルをバックアップとして別名でコピーしておき、比較できる状態にしておくことです。変更すべきは
sheetProtection
タグだけですが、XMLは一行が非常に長いため、誤って前後の文字列まで消してしまうミスが起きやすいです。検索してヒットしたら、そのタグ全体だけを選択して削除するよう、細心の注意を払ってください。VS CodeやNotepad++などの高機能テキストエディタを使うと、XMLの構造がハイライト表示され、誤削除のリスクを大幅に減らせます。
問題5Google スプレッドシートにインポートして保護を外すという裏技
あまり知られていませんが、.xlsxファイルをGoogleドライブにアップロードし、Googleスプレッドシートとして開くという方法があります。Googleスプレッドシートで開いた場合、Excelのシート保護はGoogleの保護システムとは異なるため、保護が無効化された状態でデータを閲覧・編集できる場合があります。
ただし、この方法にも制限があります。機密情報が含まれるファイルをGoogleのクラウドにアップロードすることは、情報漏洩リスクや社内規程違反になる可能性があります。また、Excelの高度な数式や特殊な書式が完全に再現されないケースもあります。あくまで「他の方法が全て使えない場合の最終手段」として認識しておいてください。個人の自己所有ファイルで試す分には有効な選択肢のひとつです。
情シス担当者が社内展開すべき「Excelパスワード運用ガイドライン」の骨子
これまで読んできて、パスワードトラブルの根本原因が「管理体制の不備」にあることは明確です。では、情シス担当者として社内に展開すべきガイドラインはどんな内容にすべきか、実際に機能したルール作りの経験から骨子をお伝えします。
ガイドラインに必ず盛り込むべき5つの項目
①シート保護と読み取りパスワードの使い分けルールを明文化します。誰でも閲覧できる一般業務ファイルへのシート保護は「誤操作防止目的」として許容するが、個人情報・財務情報・顧客データには必ずファイル暗号化(読み取りパスワード)を設定するよう使い分けを義務づけます。
②パスワードの記録・引き継ぎ義務を明確にします。業務ファイルにパスワードを設定した場合は、必ず指定のパスワード管理ツール(社内承認済みのもの)に登録することをルール化します。パスワードを自分だけのメモやノートに保管することを禁止事項として明示します。
③退職・異動時のチェックリストに「担当業務で保護を設定したExcelファイルのパスワードを引き継いだか」の確認項目を追加します。これは人事部門との連携が必要ですが、この1項目を追加するだけでトラブルの大部分を防げます。
④パスワード解除作業の申請フローを整備します。業務上パスワード解除が必要になった場合は、「申請者→上長承認→情シス担当による作業→作業記録の保管」という流れを定め、無断での個人解除作業を禁止します。このフローがあることで、後からトラブルが起きても経緯が追えます。
⑤定期的な棚卸しの実施です。年に1回程度、社内の共有フォルダ上にあるExcelファイルのパスワード設定状況を確認し、不要な保護が残っているファイルや担当者不明のファイルを整理する機会を設けます。これは小規模な企業でも、フォルダの整理と兼ねて実施できます。
「あの時こうすれば良かった」と思った3つの実体験エピソード
エピソード1退職者ファイルの保護解除で半日つぶれた話
あれは某製造業の情シス担当をしていた時の話です。経理担当が3年前に退職した際、引き継ぎが不完全で、毎月使っている経費集計用のExcelファイルのシート保護パスワードが誰もわからない状態になっていました。月末の締め作業が翌日に迫る中、ZIP変換でXMLを編集しようとしたのですが、なんとそのファイルが10年近く前に作られた.xls形式のバイナリファイルだったんです。当然ZIPで展開してもXMLは出てこない。
結局、そのファイルをExcelで開いて.xlsx形式で保存し、そこからZIP変換で解除という手順を踏みましたが、変換の過程でマクロが一部壊れてしまい、修復に余計な時間がかかりました。結論ファイルの形式(.xls か .xlsx か)を最初に確認してから作業方針を決める。これが絶対に必要。
エピソード2解除ツールの無料版を使ったらウイルス感染の危機になった話
「無料のパスワード解除ツールを試してみた」という社員から相談を受けたことがあります。インターネットで「Excel パスワード 無料 解除」と検索してダウンロードしたツールを実行したところ、ウイルス対策ソフトが反応してインシデント対応が必要になりました。幸いウイルスは隔離されましたが、ヒヤリとした事例です。
検索上位に表示されるフリーツールの中には、信頼性が低いものも多く含まれています。企業環境でサードパーティツールを使う場合は、必ずIT部門が事前に安全性を確認した承認済みツールのみを使用するルールを徹底してください。Virustotalなどのオンラインマルウェアスキャナーでインストーラーをチェックしてから使用することも一つの手です。
エピソード3「読み取りパスワード」と「シート保護パスワード」を混同して作業した失敗
ある時、「ファイルを開けなくなった」という相談でZIP変換を試みようとしたユーザーがいました。実はそのファイルはシート保護ではなく読み取りパスワードが設定されていたため、ZIPで展開しても全て暗号化されていて中身が見られなかったのですが、そのユーザーは「手順通りにやっているのになぜ動かない!」とパニックになっていました。
最終的にそのファイルは対応できず、幸い別のバックアップから復元できましたが、最初に「どのパスワードが設定されているか」を見極めるだけで、無駄な作業を1時間以上しなくて済んだはずです。
ぶっちゃけこうした方がいい!
ここまで長々と書いてきましたが、正直なことを言います。シート保護のパスワードが不明になった時の解決方法の中で、個人的にいちばん「楽だし確実だし後腐れない」と思っているのは、ZIPで展開して7-ZipでXMLを直接編集する方法一択です。
VBAのブルートフォース解除は.xlsxには効かないし、古い.xls形式には有効でも実行中はExcelがほぼ使えない状態になる。解析ツールはシート保護には過剰スペックで、機密ファイルを外部ツールに渡すのはリスクがある。Googleスプレッドシートにアップロードする方法は手軽ではあるけれど、企業ファイルをクラウドにアップするのは情報管理の観点で問題になりうる。
一方でZIP変換+XML編集は、Windowsの標準機能だけで完結できて、7-Zipがあれば作業ミスのリスクも格段に下がる。しかもシート保護パスワードがどれだけ複雑なものであっても、パスワードを「解読」するのではなく「保護のタグを消す」だけなので、理論上は必ず解除できる。所要時間も慣れれば10分以内に終わります。
ただ、ここで一番伝えたいのは技術の話ではありません。
10年以上情シスをやってきて実感するのは、「パスワードが不明になって困った」という相談が来るたびに、その根本にあるのは「組織としてのファイル管理文化の問題」だということです。解除方法を覚えることは大切ですが、それは「消火器の使い方を覚えること」に過ぎません。本当に必要なのは「火事が起きない環境を作ること」、つまりパスワード管理のルールと文化を整備することです。
今すぐできることとして、自分が担当するExcelファイルのパスワードをパスワードマネージャーに登録すること、引き継ぎ資料にパスワード記録の欄を設けること、この2つを今日から始めてみてください。技術的な解除方法は「いざとなれば使える保険」として頭に入れておく程度で十分です。保険はなるべく使わないに越したことはない。それが情シスとして学んだ一番大切なことです。
このサイトをチップで応援
Excelシート保護のパスワード不明に関する疑問を解決!
シート保護のパスワードを解除する作業は法律的に問題ないですか?
自分が作成したファイル、または正当な権限を持つ立場で業務上使用しているファイルのパスワードを解除することは、基本的に問題ありません。ただし、他人のファイルを権限なく改変することは不正競争防止法や不正アクセス禁止法に触れる可能性があります。企業内であっても、自分の担当業務範囲外のファイルに無断でアクセスすることはコンプライアンス上のリスクがあります。必ず情報システム部門の承認を得た上で作業してください。
Excel 365(Microsoft 365)のファイルでもZIP変換は有効ですか?
はい、Microsoft 365で作成された
.xlsx
形式のファイルでも、シート保護パスワードに対してはZIP変換によるXML編集が有効です。ただし、
.xlsx
ファイルが「読み取りパスワード(ファイル暗号化)」で保護されている場合は、ZIPとして展開しても中身のXMLが暗号化されているため、この方法は使えません。
複数のシートに保護がかかっている場合はどうすればよいですか?
xl/worksheets/
フォルダの中には、保護されているシートの数だけXMLファイル(
sheet1.xml
、
sheet2.xml
など)が存在します。それぞれのXMLファイルを個別に開き、
sheetProtection
タグを削除する作業を繰り返す必要があります。どのXMLファイルがどのシートタブに対応しているかは、
xl/workbook.xml
を開いて確認できます。
作業中にExcelから「問題が見つかりました。修復しますか?」というメッセージが出ました
これはXMLを手動編集した際に起きる正常な現象です。「はい」をクリックして修復を進めてください。Excelが自動的にファイルを修復し、ほとんどの場合は問題なく開けます。修復後は念のため別名で保存しておくことをおすすめします。もし修復後も開けない場合は、バックアップファイルを使って再度手順を確認してください。
解析ツールで絶対にパスワードが見つかる保証はありますか?
いいえ、保証はありません。特にExcel 2013以降のファイルでAES-256ビット暗号化が設定されている場合、パスワードが複雑であれば現実的な時間内での解析は不可能です。パスワードが「読み取りパスワード(ファイル暗号化)」であり、長く複雑なものであった場合は、残念ながらファイルの内容を取り出すことは非常に難しいと認識してください。これがMicrosoftが「パスワードを忘れないように」と警告する理由でもあります。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
Excelのシート保護パスワードが不明になった際の企業での対応について、仕組みの理解から具体的な解除手順、そして再発防止策まで幅広く解説しました。
最も重要なポイントは3つです。まず、パスワードの種類を正確に見極めることです。シート保護パスワードはZIP変換で解除できる可能性が高い一方、ファイル暗号化(読み取りパスワード)はExcel 2013以降では事実上解除不可能なケースもあります。次に、作業前に必ずバックアップを取ることです。これは絶対に省略しないでください。そして最も根本的な解決策は、パスワード管理ツールの導入と引き継ぎルールの整備によって、そもそもパスワード不明という状態を防ぐことです。
Excelのシート保護は「セキュリティ機能」ではなく「誤操作防止機能」であることを組織全体で共有し、本当の機密データ保護にはファイル暗号化やアクセス権限管理を活用しましょう。今この瞬間に困っている方も、将来の備えとしてこの記事を読んでいる方も、ぜひ今日から管理体制の見直しを始めてみてください。





コメント