- ベストアンサー
再起処理について
お世話になっております。 VBA初心者です。 あるフォルダ以下にあるエクセルファイルに対しパスワードを一括変更するマクロを作成しております。 単一のフォルダに対し処理はできたのですが、配下全てとなると再起処理が必要なようで、いまいち理解できません。 そこで、どのようにしたら目的が果たせるかご教授いただけませんでしょうか。 以上、宜しくお願いいたします。 --------------------------単一のフォルダのソース Sub 同フォルダのみ() Dim myFilename Dim DR Dim MP Dim NP ' 各入力された値を変数にいれる ' (1)passwordがかかっているディレクトリ DR = Range("c4").Value ' (2)元からかかっているパスワード MP = Range("c8").Value ' (3)新しくつける読み込みパスワード NP = Range("c12").Value ' ファイル名 myFilename = Dir(DR & "\*.xls") ' ループ-------------------------ここから Do While myFilename <> "" ' エクセルファイルを開く Workbooks.Open Filename:=DR & "\" & myFilename, Password:=MP ' 新しいパスワード ActiveWorkbook.SaveAs Filename:=myFilename, Password:=NP ActiveWorkbook.Save Application.DisplayAlerts = False 'メッセージを出さない ActiveWorkbook.Close myFilename = Dir() Loop ' ここまで-------------------------ループ End Sub
- みんなの回答 (2)
- 専門家の回答
お礼
redfox63様 ご回答ありがとうございます。 Dirにこだわらないで、別の方の回答にあるようにFileSystemObjectを利用しようと思います。 ただ、ちょっと考え方が難しくよくわからないので もう少し考えてみようと思います。 ありがとうございました。