Forum Discussion
パスワード忘れ excel シート の 保護 解除方法
こんにちは。以前パスワードを設定したExcelファイルがあるのですが、そのパスワードを忘れてしまい、シートを編集できずに困っています。かなり前に設定したものなので、どんなパスワードにしたか全く思い出せません。
どなたか、パスワードを忘れた状態でもexcel シート の 保護 解除ができる方法をご存知でしたら教えていただけないでしょうか。VBAを使う方法やフリーソフトなど、試された方がいらっしゃればぜひ教えてください。よろしくお願いします。
9 Replies
- JadeookbIron Contributor
Dr Excel
- HupixdelSilver Contributor
パスワードを忘れてしまったExcelシートの保護を解除したいが、VBAやZIPファイル方式は使いたくない。そんなあなたに、少しマニアックな方法をご紹介します。それが「Hexエディタ方式」です。この方法を使えば、外部ソフトを一切インストールせずに、Excel シート 保護 解除を試みることができます。ここでは、ファイルの生データを直接編集することで、Excel シート 保護 解除を実現する方法を詳しく説明します。
この方法は、特に古い.xls形式のExcelファイルに対して効果的です。.xlsxなど新しい形式のファイルにも応用できますが、まずは基本となる.xlsファイルでの手順を説明します。
- Hexエディタを用意する: まず、ファイルの生データ(16進数)を表示・編集できる「Hexエディタ」というソフトが必要です。今回は例として、無料で人気の高いHxDを使います。お持ちでなければ、公式サイトからダウンロードしてインストールしてください。
- 必ずバックアップを作成する: これは最も重要なルールです。元のファイルを直接編集するのではなく、必ずコピーを作成し、そのコピーに対して作業を行ってください。編集を間違えてファイルが壊れても、元のファイルが残っていれば安心です。
- ファイルをHexエディタで開く: HxDを起動し、先ほど作成したファイルのコピー(.xlsファイル)を開きます。画面上には16進数の羅列と、それに対応するテキストが表示されます。
- 保護のキーを探す: ここが一番のポイントです。Hexエディタの検索機能(Ctrl+F)を使って、DPB=という文字列を探します。これは、VBAプロジェクトのパスワード保護を示す特別なキーです。
- キーを書き換える: DPB=が見つかったら、Bの部分を別の文字(例えばx)に変更します。つまり、DPB=をDPx=に書き換えます。このほんの小さな変更により、Excelが保護の設定を無視するようになります。
- 保存して閉じる: 変更を保存し、Hexエディタを閉じます。
- Excelで開く: 編集した.xlsファイルをExcelで開きます。この時、The project file's key is not valid.のようなエラーメッセージが表示されることがあります。これは想定内の動作です。メッセージが表示されたら、「OK」または「はい」をクリックして続行します。
- VBAエディタを開く: Excelがファイルを開いたら、Alt + F11キーを押してVBAエディタを開きます。パスワードを求められずに、VBAプロジェクトを表示できていれば成功です。
- 新しいパスワードを一時的に設定する: VBAエディタの「プロジェクト」ウィンドウで該当のプロジェクトを右クリックし、「VBAProject のプロパティ」を選択します。「保護」タブをクリックし、「プロジェクトの表示をロックする」にチェックを入れ、新しい一時的なパスワード(例えば123)を設定します。
- 保存、閉じて、再度開く: Excelファイルを保存し、一度閉じてから再度開きます。これで、新しい有効なパスワードキーがファイルに正しく書き込まれます。
- パスワードを完全に削除する: もう一度Alt + F11でVBAエディタを開くと、今度はプロジェクトがロックされています。再度「VBAProject のプロパティ」→「保護」タブを開き、「プロジェクトの表示をロックする」のチェックを外し、パスワードフィールドを空にします。これでExcel シート 保護 解除の完了です!
- AidenHarveyIron Contributor
Python は openpyxl ライブラリを活用してローカルでexcel シート の 保護 解除を実行できるコード手法だが、事前に Python 環境とライブラリの導入が必須で、初心者にとって扱いにくい安定的なexcel シート の 保護 解除手段となる。コードを実行するだけで全シートの保護設定を無効化しパスワード情報を削除、保護なしの新しい xlsx ファイルとして出力できるが、古い xls 形式には対応していない制限が存在する。使い方:事前にコマンド pip install openpyxl を実行しライブラリをインストールする。テキストエディタに下記コードを記述し、ファイル名を自身の Excel ファイル名に修正する。
from openpyxl import load_workbook # ファイルを開く wb = load_workbook('protected.xlsx') # すべてのシートの保護を解除 for sheet in wb.worksheets: sheet.protection.sheet = False sheet.protection.password = None # 保存 wb.save('unprotected.xlsx')スクリプトを実行後、出力された unprotected.xlsx を開くとシート保護が解除された状態で編集可能になる。この手法は追加ソフトやクラウドアップロード不要でオフライン処理できるexcel シート の 保護 解除方法だが、プログラミング知識がないと操作が難しく、xls ファイルには適用できない点に注意が必要。外部にファイルを送信せず機密 Excel ファイルの保護を解除したい場合、大量の xlsx ファイルを一括処理したい場合に特に役立つ。
- CameronLewisIron Contributor
OpenOffice Calc は無料のオープンソースの表計算ソフトですが、xlsx 形式のファイルとの互換性が低く、excel シート 保護 解除できないことがよくあります。
旧バージョンの xls 形式の Excel ファイルについては、ソフトウェアの設計上、ワークシートの保護を無視して直接開きますが、保存時に誤った形式を選択すると、保護が再び有効になる可能性があります。
操作手順:ソフトウェアを起動し、ワークシートが保護されている Excel ファイルを開きます。編集可能な場合は内容を変更し、保存画面で「Microsoft Excel 97/2000/XP」の xls 形式を選択してエクスポートします。
その後、通常の Excel を使用して、保護制限のないこの xls ファイルを開き、利用することができます。
この方法はexcel シート 保護 解除するには適用できないため、xls ファイルに対する解決策としてのみ使用可能です。
追加のツールやクラウドサービスを使用したくない場合は、この方法を試すことができますが、xlsx ファイルでの成功率は極めて低いため、操作前にファイル形式を確認してから実行してください。
デメリット
- .xlsx ファイルの場合、ワークシートの保護を解除できる成功率は、旧形式の .xls ファイルに比べて大幅に低くなります。
- Excel ファイルを開いた後、複雑な数式、グラフ、セルのレイアウトが崩れることがあります。
- 新しいバージョンの Excel に特有の機能の一部が、正しく表示されない場合があります。
- 保存形式を誤って選択すると、ワークシートの保護が再適用される場合があります。
- WifordBrass Contributor
Microsoftは、忘れたワークシートのパスワードを回復、リセット、または削除するための公式な方法を提供していません。そのため、ここで紹介する方法は非公式なものであり、成功を保証するものではありません。これらの方法を使用する場合は、必ず元のファイルのバックアップコピーを作成してから試してください。
パスワードを忘れた場合にExcel シート の 保護 解除を試みるコマンドラインツールとして、unlock_excel というユーティリティが存在します。
Excel シート の 保護 解除する方法:
1. ツールの機能: このツールは、VBAプロジェクトの保護ステータスを読み取ったり、保護を解除したりするために設計されています。特定のExcelファイル形式(.xls、.xlsm、.xlsb)に対応していますが、VBAを含まない.xlsxファイルには対応していません。
2. 使用方法の例:
ファイルの保護状態を読み取るには、以下のコマンドを実行します。
text
./unlock_excel read ファイル名
パスワードが設定されている場合、そのハッシュ値とソルトが表示されます。これらは、hashcat や John the Ripper といったパスワードリカバリツールで利用できます。
ファイルから保護を削除するには、以下のコマンドを実行します。
text
./unlock_excel remove ファイル名
デフォルトでは、_unlocked という接尾辞が付いた新しいファイルに保存されます。元のファイルを直接更新するには、-i フラグを追加します。
text
./unlock_excel remove -i ファイル名
- MateoRodriguezIron Contributor
Google Sheets へファイルをアップロードする手法は、ローカル Excel のシート保護制限がクラウド上で無効化される仕組みを利用したexcel シート 保護 解除の簡易手段で、編集後 Excel 形式で出力可能だが、ファイルを外部サーバーに送信するため機密データには適さず確実性に欠け情報漏洩リスクも伴う。
Excelのワークシートの保護を解除する方法
- 対象のExcelファイルをGoogleドライブにアップロードします。
- アップロードされたファイルを右クリックし、「Googleスプレッドシートで開く」を選択します。
- 保護が解除された状態でワークシートを編集します。
- 上部のメニューから「ファイル」→「ダウンロード」→「Microsoft Excel」を選択してエクスポートします。
デメリット
- ファイルをクラウドにアップロードする必要があるため、情報漏洩のリスクがある
- 複雑な数式やマクロを含むファイルの場合、レイアウトや機能が正常に動作しなくなる可能性がある
- ワークシートの保護を解除できない場合があり、必ずしも成功するとは限らない
これは、ローカルツールやVBAが使用できない場合に試すことができる、Excelワークシートのロック解除の代替手段ですが、個人情報や機密データを含むファイルには絶対に使用しないでください。
注意事項
- 氏名、住所、電話番号など個人情報を含むファイルのアップロードを禁止
- 企業の業務データ、機密資料にはこの手法を使用しない
- アップロード前にファイルの複製バックアップを作成する
- ファイルダウンロード完了後、Drive 上の元ファイルを完全に削除する
- NskdoIron Contributor
実は、最新のExcelファイル(.xlsx形式)は、見かけ上は普通のファイルですが、実際はZIPアーカイブの一種です。ファイルの拡張子を変更することで、あたかもフォルダのように中身を開くことができ、特定のシートの保護設定が書かれているXMLファイルを見つけて、ロックをかける部分を手動で削除してしまいます。これで Excel シート 保護 解除 が完了します。
ただし、この方法は少し技術的で、間違った部分を削除するとファイルが破損する可能性があるため、細心の注意が必要です。
手順は以下の通りです:
- バックアップを作成する:これが最も重要なルールです。必ず元のファイルのコピーを使って作業してください。もし失敗しても、元のファイルが残っているので安心です。
- ファイル拡張子を表示する:Windowsのエクスプローラーで、表示 タブをクリックし、「ファイル名拡張子」にチェックを入れます。
- ZIPにリネームする:対象のファイルを右クリックして 名前の変更 を選び、拡張子を .xlsx から .zip に変更します。警告メッセージが表示されたら「はい」をクリックして確認します。
- アーカイブを開く:新しい .zip ファイルをダブルクリックして、フォルダのように開きます。次に、xl → worksheets フォルダに移動します。
- XMLを編集する:sheet1.xml、sheet2.xml などのファイルが表示されます。保護を解除したいシートに対応するXMLファイルをデスクトップなどにドラッグしてコピーします。そのファイルをメモ帳で開きます。
- 保護タグを見つけて削除する:メモ帳で Ctrl+F を押し、protection という単語を検索します。<sheetProtection ... /> という行が見つかります。このタグ全体を、開始の < から終了の /> まで、慎重に選択して削除します。
- ファイルを戻す:編集したXMLファイルを保存します。それをZIPアーカイブ内の worksheets フォルダにドラッグして戻し、元のファイルと置き換えます。ZIPフォルダを閉じます。
- XLSXにリネームし直す:ファイルの拡張子を .zip から .xlsx に戻します。Excelで開くと、シートの保護が解除されているはずです。これで Excel シート 保護 解除 が完了です!
- NicholasWilliamsBronze Contributor
Excel Password Unlocker は無料オープンソースの専用ツールで、GUI 操作のみでexcel シート の 保護 解除を実行可能で、Python・VBA のコード作成が不要で初心者向きだが、xls/xlsx 両方に一部しか対応せず全ての Excel ファイルに通用しないため万能な手段とは言えず、シート保護解除に機能が特化している。
excel シート の 保護 解除する方法
手順1:検索時にキーワード検索ツールを使用する
手順2:ソフトウェアをインストールした後、プログラムを起動する
手順3:画面上でロックを解除したいExcelファイルを選択する
手順4:「Unlock」ボタンをクリックしてロック解除を実行する
最後に、操作が完了したら、ロックが解除された新しいファイルとして保存する
プログラミングの知識がなく、Excelワークシートの保護を簡単に解除してみたいというユーザーには、このツールが適しています。ただし、暗号化形式が異なる場合、操作が失敗する可能性があるため、あらかじめファイルのバックアップをとっておくことをお勧めします。
メリット
- xlsおよびxlsxの2種類のExcelファイル形式を一部サポート
- ワークシートの保護解除に特化した、操作が簡単なグラフィカルユーザーインターフェース
- コードの記述や開発環境のインストールが不要
デメリット
- すべての暗号化モードに対応しているわけではなく、復号に失敗する場合がある
- 通常、ワークブック全体の開くためのパスワードには対応していない
- AmbrosenbIron Contributor
この方法では、短いVBAコードをコピー&ペーストするだけです。コードを書く知識はまったく不要です。このコードは、考えられる文字の組み合わせを高速で何百万通りも試し、そのシートでExcelが受け入れるパスワードを探し出します。本来のパスワードを復元するわけではありませんが、代わりに使えるパスワードを見つけてくれるのです。これでExcel シート の 保護 解除が可能になります。
手順は以下の通りです:
- VBAエディタを開く:ロックされたExcelファイルを開いた状態で、キーボードの Alt + F11 を押します。
- モジュールを挿入する:開いたウィンドウで、挿入 → 標準モジュール をクリックします。
- コードを貼り付ける:表示された空白の領域に、以下のコードをコピー&ペーストします:
vba
Sub PasswordBreaker()
'ワークシートのパスワード保護を解除します
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(i) & Chr(j) & _
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) & " です"
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub
3. コードを実行する:F5 キーを押してコードを実行します。ポップアップウィンドウが表示され、使えるパスワードが表示されます。それをメモして OK をクリックし、VBAエディタを閉じます。
4. シートの保護を解除する:Excelの 校閲 タブに移動し、シートの保護解除 をクリックします。コードが表示したパスワードを入力します。これでシートのロックが解除され、Excel シート の 保護 解除が完了します!
この方法は古い .xls 形式と新しい .xlsx 形式の両方で動作しますが、非常に複雑で長いパスワードに対しては成功率がやや下がることがあります。