Excelの「パスワード」は4種類あり、内容を暗号化するのは1つだけ
Excelには「パスワードを設定する」と呼ばれる操作が複数あります。しかし、そのうちファイルの内容を暗号化して読み取れなくするのは「ファイルを開くパスワード」だけです。残りの3つは、操作を制限するフラグとして働くだけで、内容そのものを暗号化しません。
表1:4つの「パスワード」が実際に何を守るか
| 保護の種類 | 実際に守る対象 | 暗号化 | 内容の取り出し | 主な用途 |
|---|---|---|---|---|
| ファイルを開くパスワード | ファイル全体の内容(機密性) | あり(ファイル全体を暗号化) | パスワードなしでは復号できない | 社外に配る機密ファイル |
| ブックの保護 | シートの追加・削除・移動・非表示・名前変更などの構成 | なし | 内容は読める(構成の変更を止めるだけ) | シート構成の誤変更防止 |
| シートの保護 | セル・範囲・書式・オブジェクトの編集 | なし | 内容は読める(値も数式もそのまま取り出せる) | 数式やレイアウトの誤変更防止 |
| VBAプロジェクトの保護 | Visual Basic Editorでの閲覧・編集 | なし | 内容は読める(保護はハッシュと難読化のみ) | マクロの誤変更防止 |
この違いは、Microsoft自身がはっきり書いています。Excelの「保護とセキュリティ」のページには、ワークシート レベルの保護はセキュリティ機能として意図されたものではないと記載され、さらに「ブックやワークシートをパスワードで保護したからといって、安全だと想定してはならない」と注意を促しています。つまり「シートにパスワードをかけたから中身は見られない」という理解は、公式文書の立場とは異なります。
同じ構図はZIPファイルにもあります。暗号化ZIPと、そうでないZIPを混同すると、受け渡しの前提が崩れます。詳細はZIPファイルにパスワードを設定する方法で扱っています。
ファイルを開くパスワード(暗号化)を設定する
Microsoftの「Excel ファイルを保護する」に示された手順は次のとおりです。Windows版のExcelでは、リボンの操作として案内されています。
- [ファイル]→[情報]→[ブックの保護]→[パスワードで暗号化]の順に選ぶ
- [パスワード]ボックスにパスワードを入力し、[OK]を選択する
- 確認のため同じパスワードを再入力し、[OK]を選択する
Mac版ではメニューの位置や名称が異なる場合がありますが、公式ページにはWindows版とMac版の両方の手順が掲載されています。マクロを含むブック(.xlsm)でも同じ操作で暗号化でき、暗号化の対象はVBAを含めたファイル全体です。
設定時に押さえるべき公式の注意点は、次の3つです。
- 長さ・文字種の制限はなく、大文字と小文字は区別されます。公式ページは「使用するパスワードの長さ、文字、数については制限はありません」と記載しています。Excel側の上限を気にせず、長いパスワードを設定できます。
- 忘れたパスワードは回復できません。「パスワードを忘れてしまった場合、Microsoftはそれを回復することができない」と明記されています。
- 配布しても常に安全になるわけではありません。公式ページは、機密情報を含むファイルをパスワード保護して配布することが常に安全とは限らないとし、他の利用者とファイルやパスワードを共有する際には、パスワードが意図しない相手の手に渡る危険が残ると説明しています。
パスワードの受け渡し経路そのもののリスクは、パスワード付きZIPとPPAPの注意点で整理しています。ファイルの配布とパスワードの通知は、可能な限り別の経路に分けてください。
シート保護・ブック保護・VBA保護は「暗号化」ではない
3つの保護は、いずれも内容を暗号化しません。その根拠は、Microsoftのサポート文書だけでなく、ファイル形式の公開仕様書に具体的に書かれています。
シート保護とブック保護:パスワードは「16ビットの検証値」
Excelバイナリ形式(.xls)の仕様書[MS-XLS]は、シートやブックの保護に使うパスワードについて、パスワード文字列を変換して16ビットのパスワード検証値を生成すると説明しています。そして、この検証値は偶発的な編集を防ぐためのもので、セキュリティ機能として設計されたものではないと明記しています。16ビットということは、取り得る値は2の16乗にあたる65,536通りしかありません。
さらに同仕様書の「セキュリティに関する考慮事項」には、保護用のパスワードは検証値を含むレコードを削除すれば解除できると書かれています。加えて、パスワードのUnicode文字列をANSIコードページへ変換する際、対応する文字がない場合にはすべて0x3Fの文字に置き換わるため、異なるパスワードでも一致と判定され得るという注意も記されています。
ブックの保護についても、Microsoftの「ブックを保護する」ページは、パスワードを指定しない場合には誰でもブックの保護を解除して変更できると説明しています。構成の変更を止める機能としては十分でも、暗号化の代わりにはなりません。
VBAプロジェクトの保護:保存されるのは「パスワードハッシュ」
VBAプロジェクトの保護も同じです。VBAのファイル形式を定めた仕様書[MS-OVBA]では、保護されたプロジェクトはパスワードのハッシュ(160ビットのダイジェスト)とランダムなデータによる難読化として保存されると説明されています。保護状態そのものは「ユーザーが保護を選んだか」といったフラグの集合として格納されます。暗号化の仕組みは定義されておらず、VBA 5.0では難読化した平文のパスワードが保存される場合があるとも記載されています。つまり、保護はVisual Basic Editorでの閲覧・編集を抑止する仕組みであり、ソースコードを暗号学的に秘匿するものではありません。APIキーや認証情報をマクロに埋め込まないでください。
「変更パスワード(書き込み保護)」も同じ扱いです
もう1つ見落とされやすいのが、読み取り専用を解除するための「変更パスワード」です。[MS-OFFCRYPTO]の記載によれば、書き込み保護の方式の一部はパスワードを平文でファイルに埋め込むとされ、書き込み保護はセキュリティの仕組みとは見なされておらず、バイナリエディターで容易に解除できると説明されています。書き込み保護は誤って変更することを防ぐためだけの機能です。
まとめると、シート保護・ブック保護・VBA保護・書き込み保護は、いずれも「うっかり変更を防ぐ」ための機能です。これらを設定しても、ファイルを受け取った相手は内容を読めます。機密性が必要な場面では、必ず「ファイルを開くパスワード」による暗号化を併用してください。
ファイル形式による暗号化の違い(.xlsxと.xls)
「ファイルを開くパスワード」の強度は、パスワードの文字数だけでなくファイル形式にも依存します。ここは混同されやすいため、Microsoftの仕様書の記載を表にまとめます。
表2:ファイル形式と暗号化(公式仕様の記載範囲)
| 観点 | .xlsx/.xlsm(ECMA-376) | .xls(Excel 97-2003バイナリ) |
|---|---|---|
| 仕様上の暗号化方式 | ECMA-376文書暗号化(Standard/Agile/Extensible) | XOR難読化・40ビットRC4・RC4 CryptoAPI暗号化のいずれか。AESは選択肢にない |
| 暗号化される範囲 | 文書全体を1つのストリームとして格納する | 一部のストリームのみ。VBAストレージやOLEストリーム、署名ストレージなどは対象外 |
| ファイル構成の情報 | 文書全体が格納されるため、内部の構成は読み取れない | レコードの種別とサイズが暗号化されないため、復号せずにレコード一覧を読み取れる |
| 鍵導出の反復処理 | Standardは50,000回の反復。Agileは反復回数(spinCount)を指定できる | 反復処理がなく、パスワードへの総当たりを高速化させると仕様が指摘している |
| 鍵が持つ情報量 | 暗号アルゴリズムの鍵長(既定は128ビット)に応じる | 40ビットRC4では鍵は128ビットだが、導出の入力は40ビットに固定されると仕様が説明している |
| Microsoftの位置づけ | 文書全体を保護する標準の暗号化方式として規定 | 後方互換性のためにのみ使うべきであり、機密情報の保存には推奨しないと明記 |
拡張子ごとの位置づけも確認します。Microsoftのファイル形式リファレンスでは、.xlsは「Excel 97-Excel 2003のバイナリ形式」、.xlsxは「Excel 2007以降のXMLベースの既定形式」と説明されています。拡張子が違うだけではなく、暗号化の体系そのものが別物です。
旧形式の弱点について、仕様書は具体的に何を指摘しているのでしょうか。XOR難読化については、文書データを容易に取り出せること、パスワードが15文字に切り捨てられること、複数の異なるパスワードが同じ鍵に対応し得ることが挙げられています。RC4系では、反復処理のない鍵導出によってパスワードへの総当たりが高速化されること、改ざん検知の仕組みがないこと、一部のストリームが暗号化されないこと、文書プロパティが暗号化されずに情報が漏れる可能性があることが並べられています。40ビットの鍵長が使われる場合には、パスワードを知らなくても鍵そのものへの総当たりが可能であるとも記されています。
そのうえで仕様書は、Excelバイナリ形式のRC4 CryptoAPI暗号化について、後方互換性が必要な場合にのみ使うべきであり、機密性の高い資料の保存には推奨しないと結論しています。古い取引先とのやり取りなどで.xlsを維持する必要がある場合でも、機密情報を含むブックは一度.xlsxへ変換してから暗号化するのが基本です。変換前に、数式やマクロ、外部参照が維持されているかを必ず確認してください。
ECMA-376文書暗号化の2方式(StandardとAgile)
.xlsx形式の暗号化は「ECMA-376文書暗号化」と呼ばれ、暗号化情報の持ち方によってStandardとAgileの2方式に分かれます。どちらが使われていても、ファイルを開くパスワードはファイル全体を保護します。違いは鍵導出と改ざんへの備えです。
表3:ECMA-376文書暗号化の2方式
| 観点 | Standard(標準暗号化) | Agile(アジャイル暗号化) |
|---|---|---|
| 暗号化情報の形式 | バイナリのEncryptionInfo構造 | XMLのEncryptionInfo構造 |
| 暗号アルゴリズム | AES固定(既定は128ビット、192・256ビットも可) | 構造内で指定(AESの128・192・256ビットなど)。RC4は使用してはならないと規定 |
| ハッシュ | SHA-1固定 | SHA-1・SHA-256・SHA-384・SHA-512などを指定可。MicrosoftはSHA-2系を推奨 |
| 鍵導出 | SHA-1を50,000回反復する方式(PKCS #5 v2.0由来) | 反復回数(spinCount)を指定する方式。上限は10,000,000回 |
| 改ざん・破損への備え | 破損検知の仕組みがなく、CBCにも対応しないと仕様が説明している | CBCと破損検知の仕組みが必須とされている |
表3のとおり、Standard方式は暗号アルゴリズムがAESに固定され、ハッシュもSHA-1に固定されています。鍵導出はPKCS #5 v2.0を由来とする方式で、SHA-1を50,000回反復して総当たりの速度を落としています。一方Agile方式は、暗号アルゴリズムとハッシュを暗号化情報の中に明記する設計で、SHA-2系のハッシュも選べます。反復回数(spinCount)は最大10,000,000回まで指定できます。
Microsoftの仕様書には、実装上の既定値も記載されています。Standard方式の既定の暗号アルゴリズムは128ビットAESで、192ビットと256ビットも利用できます。Agile方式でも、何も設定しなければAES-128とSHA-1が既定とされています。またAgile方式ではRC4を使用してはならないと規定されており、同一ファイル内で旧形式の弱い暗号化に戻ることはありません。
利用者が「StandardかAgileか」を選ぶ場面はほとんどありません。重要なのは、.xlsxで暗号化したファイルは、ファイル全体が1つのストリームとして暗号化されるという点です。個別のシートだけを暗号化する仕組みではないため、「見せたくないシートだけ保護する」という使い方はできません。見せたくない情報は、別ファイルに分けて暗号化してください。
パスワードそのものの強度をどう考えるか
Excelは「長さ、文字、数については制限はありません」と公式に説明されているため、長いパスワードをそのまま設定できます。強度を考えるときの目安として、文字種と長さから理論上のエントロピーを計算したものが表4です。各文字を独立かつ一様に選ぶと仮定した概算であり、実際のパスワードでは単語や日付などが混ざるため、この値より低くなります。
表4:長さと文字種から見た理論エントロピー(概算)
| 長さ | 英数字62種 | 記号を含む94種 |
|---|---|---|
| 12文字 | 約71ビット | 約79ビット |
| 16文字 | 約95ビット | 約105ビット |
| 20文字 | 約119ビット | 約131ビット |
表4は「文字種を増やすより、長さを伸ばすほうが効率よく強度が上がる」ことを示しています。記号の入力に制約がある環境でも、長さを確保すれば強度は補えます。ただし記号なしにすること自体が安全性を高めるわけではありません。記号を使わないぶんは、必ず長さで補ってください。
NIST SP 800-63B-4は、単一要素の認証に使うパスワードについて最低15文字を要求し、多要素認証の一部としてのみ使う場合は最低8文字まで短縮できるとしています。Excelファイルの暗号化は認証システムそのものではありませんが、設定するパスワードの長さの目安としては同じ考え方が使えます。16文字以上を確保しておけば、表4のとおり英数字だけでも約95ビットに相当します。
もう1つ忘れてはいけないのが、旧形式では鍵導出の仕組み自体が強度の上限になるという点です。40ビットRC4では、導出される鍵は128ビットでも、入力は40ビットに固定されているとMicrosoftの仕様書が説明しています。パスワードをどれだけ長くしても、この上限は上がりません。長いパスワードを設定する意味が薄れる形式では、パスワードの工夫ではなくファイル形式の変換で対処してください。
記号に制限がある環境向けの候補作成は記号なしパスワード生成ツールで、文字数と文字種を指定して行えます。配布先ごとに異なるパスワードを用意する場合は、一括生成ツールを使い、ファイルとの対応関係はアクセス制御された場所で管理してください。生成した値の保管方法はパスワード管理アプリの選び方が参考になります。
パスワードを忘れた場合・開けない場合の対処
「ファイルを開くパスワード」を忘れた場合、MicrosoftのサポートページにはMicrosoftは忘れたパスワードを回復できないと2か所に明記されています。ファイルは暗号化されたままで、バックアップや別の控えがなければ内容を取り出せません。パスワードは設定と同時に、組織で承認されたパスワード管理の仕組みへ保管してください。
環境による制約も把握しておきましょう。Excel for the webは、パスワードで保護されたブックを開いて編集できますが、パスワードの追加・変更・削除・回復はできません。パスワードを付けたい場合はデスクトップ版のExcelで開く必要があり、以降そのブックはデスクトップ版で編集することになります。またMac版のExcelについては、パスワードに15文字までの制限があり、Windows版で15文字を超えるパスワードを使ったブックはMac版で開けない場合があると「ブックを保護する」ページに記載されています。WindowsとMacの両方で使うファイルでは、15文字以内にそろえておくと無難です。
忘れたパスワードの解除をうたう外部サービスへ、機密ファイルをそのままアップロードするのは避けてください。内容を復号できる立場にあるサービスへファイルを渡すことは、暗号化の前提を自ら崩す行為です。まずはバックアップの有無、共有先に控えがないか、組織の管理者が保管していないかを確認します。
よくある質問
Excelのパスワードを忘れた場合、内容を復元できますか?
「ファイルを開くパスワード」を忘れた場合、Microsoftはパスワードを回復できないと明記しています。内容は復号できないため、正規の手段では開けません。一方、シート保護・ブック保護・VBAプロジェクト保護は暗号化ではないため、仕様上は保護用の情報を削除することで解除できるとされています。ただし解除を代行する外部サービスへ機密ファイルを渡すことは避け、日頃からパスワード管理アプリなどで保管してください。
シートの保護にパスワードを設定すれば、中身を見られませんか?
見られません。シート保護は編集できる範囲を制限する機能で、内容を暗号化しません。Microsoftも、ワークシート レベルの保護はセキュリティ機能として意図されたものではないと説明しています。第三者に内容を読ませたくない場合は、シート保護ではなく「ファイルを開くパスワード」による暗号化を使います。
Excel 97-2003形式(.xls)のままパスワードを設定してもよいですか?
機密情報を扱う場合は.xlsx形式へ変換してから暗号化してください。Microsoftの仕様書は、Excelバイナリ形式(.xls)で使える暗号化方式(XOR難読化とRC4系)について、後方互換性のためにのみ使うべきであり、機密情報の保存には推奨しないと明記しています。ECMA-376文書暗号化(.xlsx)は文書全体を1つのストリームとして暗号化します。
Excel for Macで開けないパスワードがあるのはなぜですか?
Microsoftの「ブックを保護する」ページには、Excel for Macのパスワードには15文字までの制限があり、Windows版で15文字を超えるパスワードを保護に使ったブックはMac版で開けない場合があると記載されています。WindowsとMacの両方で開く可能性があるファイルでは、パスワード長を15文字以内にそろえておくと安全です。
まとめ
Excelのパスワードは4種類あり、内容を暗号化して読み取れなくするのは「ファイルを開くパスワード」だけです。シート保護・ブック保護・VBAプロジェクト保護・書き込み保護は、うっかりした変更を防ぐ仕組みで、Microsoftのサポート文書も仕様書も、これらをセキュリティ機能とは位置づけていません。設定手順は[ファイル]→[情報]→[ブックの保護]→[パスワードで暗号化]で、長さや文字種の制限はありませんが、忘れたパスワードは回復できません。.xlsはXOR難読化とRC4系のみで、仕様書自身が機密情報の保存には推奨しないと述べています。機密情報を扱うブックは.xlsxへ変換して暗号化し、値はパスワード管理アプリで保管してください。
本記事の調査範囲と限界
- 暗号化方式の記述は、Microsoftが公開する仕様書の記載に基づきます。表2と表3は、[MS-OFFCRYPTO]・[MS-XLS]・[MS-OVBA]の記載を整理したものです。製品の実装は将来変更される可能性があり、特定のバージョンの挙動を保証するものではありません。
- 既定アルゴリズムの記述には、対象バージョンの限定があります。AES-128を既定とする記載は、仕様書の「Product Behavior」で2007 Office system・Office 2010・Office 2013を対象としたものです。現在のMicrosoft 365版が書き出す既定値は実測しておらず、断定していません。
- 解除手順や所要時間は扱っていません。仕様書が挙げる弱点の内容と、16ビット・40ビットといった鍵空間の理論値までにとどめています。実際の解除にかかる時間は環境に依存するため、具体的な数値は示しません。
- .xlsでどの暗号化方式が既定で選ばれるかは断定していません。仕様上はXOR難読化・40ビットRC4・RC4 CryptoAPI暗号化のいずれかが使われ得ますが、実際にどれが選ばれるかはExcelのバージョンや保存時の設定に依存します。本記事では「AESが選択肢にない」という仕様上の範囲のみを記述しています。
- .xlsxのシート保護が実ファイルにどう書き込まれるかは実測していません。OOXMLのシート保護は、パスワードのハッシュを保存する属性のほか、アルゴリズム名・ハッシュ値・ソルト値・反復回数を持つ属性でも表現でき、後者は特定のレジストリ設定が有効な場合に使われるとの記述があります。属性の既定値や実際の格納内容は検証していません。
- Excel for Macの15文字制限は、「ブックを保護する」ページの記載に基づきます。同ページはブック構造の保護に関する手順の中でこの制限に触れています。「ファイルを開くパスワード」にも同じ制限が及ぶかは、本記事では確認していません。
- パスワードの強度は、ファイル形式だけでは決まりません。表4のエントロピーは各文字を独立かつ一様に選ぶ前提の概算で、実際には配布経路、端末の状態、保管方法、使い回しの有無も強度に影響します。
参考資料
- Microsoft サポート・Excel での保護とセキュリティ
- Microsoft サポート・Excel ファイルを保護する(パスワードで暗号化)
- Microsoft サポート・ワークシートを保護する
- Microsoft サポート・ブックを保護する
- Microsoft Learn・[MS-OFFCRYPTO] Office Document Cryptography Structure
- Microsoft Learn・[MS-XLS] Excel Binary File Format (.xls) Structure
- Microsoft Learn・[MS-OVBA] Office VBA File Format Structure
- Microsoft Learn・Word、Excel、PowerPoint のファイル形式リファレンス
- NIST SP 800-63B-4(Digital Identity Guidelines: Authentication and Lifecycle Management)
著者・編集:passwordgenjp.com 情報セキュリティ研究チーム。公開資料の確認日:2026年9月17日。