フォルダ内の個別にパスワードが設定されたエクセルのパスワードをリストに従って解除するマクロ



フォルダ内のパスワード付きエクセルを

パスワードリストに沿って解除するマクロ

コード

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行目以降からにパスワードを付与したいエクセルのパスワードを入力する
  • ファイルが見つからない場合はエラーになる