フォルダ内にあるエクセル(拡張子が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
注意点
- バックアップを取ってから実行すること
- 念のため、バックアップを取ったかどうか最初に聞くようなコードにしている
- マクロが入ってるエクセルと同じフォルダにあるエクセルファイルが対象