フォルダ内にあるエクセルにインプットボックスで入力したパスワードを一括で設定するマクロ



フォルダ内にあるエクセル(拡張子がxlsxのもの)に

インプットボックスで入力したパスワードを
一括で設定するマクロ

コード

Sub パスワード一括設定()
    Dim FolderPath As String
    Dim Password As String
    Dim Filename As String
    Dim wb As Workbook
    Dim response As VbMsgBoxResult
    
    ' バックアップを取っているか確認
    response = MsgBox("バックアップを取りましたか?", vbYesNo + vbQuestion, "バックアップの確認")
    
    ' バックアップを取っていない場合は終了
    If response = vbNo Then
        MsgBox "バックアップが取られていないため、作業を終了します。", vbExclamation, "作業終了"
        Exit Sub
    End If
    
    ' フォルダパスと設定したいパスワードを設定
    FolderPath = ThisWorkbook.Path & "\"
    Password = InputBox("パスワードを入力してください")
    
    'アラートを消す
    Application.DisplayAlerts = False
    
    ' フォルダ内のすべてのExcelファイルに対して処理を実行
    Filename = Dir(FolderPath & "*.xlsx") ' 拡張子がxlsxのファイルを取得
    Do While Filename <> ""
        Set wb = Workbooks.Open(FolderPath & Filename)
        wb.SaveAs FolderPath & Filename, Password:=Password
        wb.Close SaveChanges:=False
        Filename = Dir
    Loop
    
    'アラートの設定を戻す
    Application.DisplayAlerts = True
    
    MsgBox "パスワード設定完了"
End Sub

注意点

  • バックアップを取ってから実行すること
  • 念のため、バックアップを取ったかどうか最初に聞くようなコードにしている
  • マクロが入ってるエクセルと同じフォルダにあるエクセルファイルが対象