フォルダ内のエクセルのパスワードを一括で解除するマクロ



同じフォルダの中にあるパスワードが同じエクセルのパスワードを

インプットボックスに一回入力するだけで一括して解除するマクロ

Sub パスワード一括解除()
    Dim FolderPath As String
    Dim Password As String
    Dim Filename As String
    Dim wb As Workbook
    
    ' フォルダパスと今のパスワードを設定
    FolderPath = ThisWorkbook.Path & "\"
    Password = InputBox("パスワードを入力してください")
    
    'アラートを消す
    Application.DisplayAlerts = False
    
    ' フォルダ内のすべてのExcelファイルに対して処理を実行
    Filename = Dir(FolderPath & "*.xlsx") ' 拡張子がxlsxのファイルを取得
    Do While Filename <> ""
        Set wb = Workbooks.Open(FolderPath & Filename, Password:=Password)
        wb.SaveAs FolderPath & Filename, Password:=""
        wb.Close SaveChanges:=False
        Filename = Dir
    Loop
    
    'アラートの設定を戻す
    Application.DisplayAlerts = True
    
    MsgBox "パスワード解除完了"
End Sub

注意点

  • フォルダ内の全てのエクセルが同じパスワードの場合のみ有効
  • パスワードを間違えるとエラーになる