この記事では、EXCELに設定されている暗号化パスワードを解除する方法について説明しています。
しかも、フォルダに存在するEXCELファイルすべてに対して、暗号化パスワードの解除が可能です。
1ファイルずつ暗号化パスワードを解除しようとすると、相当手間です。
この機能を利用して、暗号化パスワードを一気に解除しましょう。
それでは、EXCELに設定されている暗号化パスワードを解除する機能を作成していきましょう。
困っている女性
困っている女性
解決する男性
困っている女性
暗号化パスワードを一気に設定する機能については、以下の記事を参照してください。
【EXCEL:VBA】EXCELファイルを開かれないように暗号化パスワードを設定したい
まずは、手動でEXCELファイルに暗号化パスワードを設定する方法を説明します。
もくじ
1.手動でEXCELファイルに暗号化パスワードを設定する方法
「ファイル」タブの「情報」欄を開きます。
そして、「ブックの保護」をクリックします。
ブックの保護をクリックする
次に、「パスワードを使用して暗号化」をクリックします。
パスワードを使用して暗号化をクリックする
暗号化パスワードを入力するダイアログが表示されます。
暗号化パスワードを入力するダイアログが表示される
パスワードを入力して、OKボタンをクリックします。
パスワードを入力する
暗号化パスワードを設定すると、以下の表示になります。
暗号化パスワード設定済みのファイル
あとは、EXCELファイルを保存するだけです。
2.暗号化パスワードを設定されているEXCELファイルの開き方
それでは、暗号化パスワードが設定されているEXCELファイルの開き方を説明します。
EXCELファイルを開こうとすると、パスワード入力ダイアログが表示されます。
パスワード入力ダイアログが表示される
パスワードを入力して、OKボタンをクリックします。
パスワードを入力する
パスワードが合っていれば、EXCELファイルが開きます。
しかし、パスワードが間違っていると、EXCELファイルを開くことはできません。
3.暗号化パスワードを設定されているEXCELファイルの解除の仕方
暗号化パスワードを毎回入力すれば、EXCELファイルを開くことができます。
しかし、暗号化パスワードなしでEXCELファイルを開きたくなった場合は、暗号化パスワード設定を解除する必要があります。
暗号化パスワード設定を解除すれば、次回からEXCELファイルを開くときにパスワードが聞かれなくなります。
「ブックの保護」をクリックします。
ブックの保護をクリックする
「パスワードを使用して暗号化」をクリックします。
パスワードを使用して暗号化をクリックする
パスワードが入力されたダイアログが表示されます。
パスワード入力ダイアログが表示される
入力されているパスワードを消去して、OKボタンをクリックします。
入力されているパスワードを消去する
あとは、ファイルを保存するだけです。
それでは、EXCELに設定されている暗号化パスワードを一気に解除する機能に必要なものを順番に説明します。
4.対象フォルダパスと暗号化パスワードを指定するシートを作成する
まず、「対象フォルダパス」、「暗号化パスワード」を指定する欄を作成します。
「メイン」シートを作成する
メインシートを作成する
- 「メイン」という名前のシートを作成します。
- 1行目に「対象フォルダパス」、「暗号化パスワード」のタイトル行を作成します。
- 2行目に「対象フォルダパス」、「暗号化パスワード」を入力する欄を作成します。
「対象フォルダパス」には、暗号化パスワードを設定されているEXCELファイルが保存されているフォルダを指定します。
5.VBAでEXCELに暗号化パスワードを設定する機能を記入する
「Microsoft Visual Basic for Applications」を起動します。
VBAプログラムを記入する
標準モジュールを追加して、以下のソースを書きます。
Public Sub MainProc()
Dim folderPath As String
Dim pass As String
Dim fso As Object
Dim f As Variant
Dim ext As String
Dim wb As Workbook
'①「対象フォルダパス」を変数に格納する
folderPath = ThisWorkbook.Sheets("メイン").Range("A2")
'②「暗号化パスワード」を変数に格納する
pass = ThisWorkbook.Sheets("メイン").Range("B2")
'③FileSystemObjectを生成する
Set fso = CreateObject("Scripting.FileSystemObject")
'④確認メッセージを非表示に設定する
Application.DisplayAlerts = False
'⑤対象フォルダに存在するファイル数分処理する
For Each f In fso.GetFolder(folderPath).Files
'⑥ファイルの拡張子を変数に格納する
ext = LCase(fso.getextensionName(f.Name))
'⑦拡張子が「xlsx」または「xlsm」のみ処理を行う
If ext = "xlsx" Or ext = "xlsm" Then
'⑧対象ファイルを開く
Set wb = Workbooks.Open(folderPath & "\" & f.Name, Password:=pass)
'⑨対象ファイルの暗号化パスワードをクリアして保存する
wb.SaveAs folderPath & "\" & f.Name, Password:=""
'⑩対象ファイルを閉じる
wb.Close
'⑪メモリを解放する
Set wb = Nothing
End If
Next
'⑫確認メッセージを表示に設定する
Application.DisplayAlerts = True
'⑬メモリを解放する
Set fso = Nothing
MsgBox "完了"
End Sub
6.EXCELに設定されている暗号化パスワードを解除する機能の使い方
それでは、EXCELに設定されている暗号化パスワードを解除する方法を説明します。
暗号化パスワードが設定されているEXCELファイルを準備する
まず、暗号化パスワードが設定されているEXCELファイルを1つのフォルダに準備します。
また、拡張子が「xlsx」または「xlsm」のEXCELファイルを準備してください。
暗号化パスワードが設定されているEXCELファイルを用意する
「対象フォルダパス」と「暗号化パスワード」を入力する
「メイン」シートのA2セルに「対象フォルダパス」、B2セルにEXCELファイルに設定されている「暗号化パスワード」を入力します。

対象フォルダパスと暗号化パスワードを入力する
マクロを実行する
次に、「開発」タブの「マクロ」をクリックします。
マクロボタンをクリックする
先程作成した自作関数「MainProc」が一覧に表示されていますので、選択します。
次に、「実行」ボタンをクリックして暗号化パスワード解除を開始します。
実行ボタンをクリックする
少し待つと、処理が完了します。
指定された「対象フォルダパス」に同じ名前でEXCELファイルが保存されます。
暗号化パスワードが設定されたEXCELファイルを開こうとすると、パスワード入力ダイアログが表示されずに、開くことができようになっています。
指定した「対象フォルダパス」に存在するEXCELファイルから、暗号化パスワード設定が解除されていることを確認できます。
どうですか、簡単でしょ。
「暗号化パスワードを設定する機能」と「暗号化パスワードを解除する機能」の両方を利用すると、さらに便利になります。
【EXCEL:VBA】EXCELファイルを開かれないように暗号化パスワードを設定したい
7.EXCELファイルに設定されている暗号化パスワードを解除するVBAプログラムの説明
それでは、VBAプログラムを説明します。
①「対象フォルダパス」を変数に格納する
'①「対象フォルダパス」を変数に格納する
folderPath = ThisWorkbook.Sheets("メイン").Range("A2")
ここでは、指定されている「対象フォルダパス」を変数に格納しています。
②「暗号化パスワード」を変数に格納する
'②「暗号化パスワード」を変数に格納する
pass = ThisWorkbook.Sheets("メイン").Range("B2")
ここでは、指定されている「暗号化パスワード」を変数に格納しています。
③FileSystemObjectを生成する
'③FileSystemObjectを生成する
Set fso = CreateObject("Scripting.FileSystemObject")
ここでは、このあとで利用する「FileSystemObject」を生成しています。
ファイル操作やフォルダ操作するとき、よく利用するライブラリです。
④確認メッセージを非表示に設定する
'④確認メッセージを非表示に設定する Application.DisplayAlerts = False
ここでは、EXCEL操作時に表示される確認メッセージを表示されないようにしています。
⑤対象フォルダに存在するファイル数分処理する
'⑤対象フォルダに存在するファイル数分処理する For Each f In fso.GetFolder(folderPath).Files
ここでは、対象フォルダに存在するファイル数分処理を繰り返します。
⑥ファイルの拡張子を変数に格納する
'⑥ファイルの拡張子を変数に格納する ext = LCase(fso.getextensionName(f.Name))
ここでは、対象フォルダに存在するファイルの拡張子を変数に格納しています。
⑦拡張子が「xlsx」または「xlsm」のみ処理を行う
'⑦拡張子が「xlsx」または「xlsm」のみ処理を行う If ext = "xlsx" Or ext = "xlsm" Then
ここでは、先程取り出した拡張子が「xlsx」または「xlsm」かを確認しています。
同じ場合、暗号化パスワードの解除処理を行います。
異なる場合、暗号化パスワードの解除処理は行いません。
⑧対象ファイルを暗号化パスワードを指定して開く
'⑧対象ファイルを開く Set wb = Workbooks.Open(folderPath & "\" & f.Name, Password:=pass)
ここでは、対象のEXCELファイルを暗号化パスワードを指定して、開いています。
⑨対象ファイルに暗号化パスワードを設定して保存する
'⑨対象ファイルの暗号化パスワードをクリアして保存する wb.SaveAs folderPath & "\" & f.Name, Password:=""
ここでは、対象のEXCELファイルから設定されている暗号化パスワードをクリアして、同じファイル名で同じフォルダに保存しています。
⑩対象ファイルを閉じる
'⑩対象ファイルを閉じる wb.Close
ここでは、暗号化パスワード解除が完了したEXCELファイルを閉じています。
⑪メモリを解放する
'⑪メモリを解放する Set wb = Nothing
ここでは、使い終わったワークブック変数のメモリを解放しています。
⑫確認メッセージを表示に設定する
'⑫確認メッセージを表示に設定する Application.DisplayAlerts = True
ここでは、確認メッセージが表示されるように、設定しています。
処理が完了したので、元に戻しています。
⑬メモリを解放する
'⑬メモリを解放する Set fso = Nothing
ここでは、使い終わった「FileSystemObject」変数のメモリを解放しています。
それでは、暗号化パスワードが設定されているEXCELファイルの暗号化パスワードを一気に解除してみましょう。
以上です。
最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。

