マクロエクセルと同じフォルダにあるエクセルファイルに
リストに沿ってそれぞれ個別のパスワードを付与するマクロ
コード
Sub 個別パスワード一括設定() Dim FolderPath As String Dim wb As Workbook Dim response As VbMsgBoxResult Dim ws As Worksheet Dim lastrow As Long Dim i As Long Dim FilePath As String ' バックアップを取っているか確認 response = MsgBox("バックアップを取りましたか?", vbYesNo + vbQuestion, "バックアップの確認") ' バックアップを取っていない場合は終了 If response = vbNo Then MsgBox "バックアップが取られていないため、作業を終了します。", vbExclamation, "作業終了" Exit Sub End If ' フォルダパスを設定 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) wb.SaveAs FilePath, Password:=ws.Cells(i, 2) wb.Close SaveChanges:=False Else MsgBox "ファイルが見つかりません: " & FilePath, vbExclamation, "エラー" End If Next i ' アラートの設定を戻す Application.DisplayAlerts = True MsgBox "パスワード設定完了" End Sub
注意点
- パスワードリストをアクティブシートにして実行する
- パスワードシートのA列の2行目以降にパスワードを付与したいエクセルのファイル名を入力する
- パスワードシートのB列の2行目以降からにパスワードを付与したいエクセルのパスワードを入力する
- ファイルが見つからない場合はエラーになる
- バックアップを取ってから実行する
- マクロが入ってるエクセルと同じフォルダのエクセルが対象