フォルダ内のパスワード付きエクセルを
パスワードリストに沿って解除するマクロ
コード
Sub 個別パスワード一括解除() Dim FolderPath As String Dim wb As Workbook Dim ws As Worksheet Dim lastrow As Long Dim i As Long Dim FilePath As String ' フォルダパスを設定 FolderPath = ThisWorkbook.Path & "\" ' パスワードリストを設定 Set ws = ActiveSheet ' パスワードリストの最終行を取得 lastrow = ws.Range("A1").CurrentRegion.Rows.Count ' アラートを消す Application.DisplayAlerts = False ' パスワードリストのExcelファイルに対して繰り返し処理を実行 For i = 2 To lastrow FilePath = FolderPath & ws.Cells(i, 1) & ".xlsx" ' ファイルが存在するか確認 If Dir(FilePath) <> "" Then Set wb = Workbooks.Open(FilePath, Password:=ws.Cells(i, 2)) wb.SaveAs FilePath, Password:="" wb.Close SaveChanges:=False Else MsgBox "ファイルが見つかりません: " & FilePath, vbExclamation, "エラー" End If Next i ' アラートの設定を戻す Application.DisplayAlerts = True MsgBox "パスワード解除完了" End Sub
注意点
- マクロが入ってるエクセルと同じフォルダのエクセルが対象
- パスワードリストをアクティブシートにして実行する
- パスワードシートのA列の2行目以降にパスワードを付与したいエクセルのファイル名を入力する
- パスワードシートのB列の2行目以降からにパスワードを付与したいエクセルのパスワードを入力する
- ファイルが見つからない場合はエラーになる