VBATips

フォルダ内のxlsxファイルに同一処理をするマクロ【ExcelVBA】

フォルダ内のエクセルファイル全てに同一処理をする

たくさんのファイルに対して、決まった処理(月初処理や月末処理等)を繰返し行うことはよくあります。
ファイル数が多いと時間が多く必要で、エクセルファイルを開く→修正→保存と手間がかかります。

面倒な処理を一括処理、ヒューマンエラーを起こさない為にも、マクロ化します。

サンプルコード

'■フォルダ内のエクセルファイルを一括処理(今回はA1セルに1と入力のみ)
Sub call_folder_all_file_process()
    
    Dim Path As String
    Dim FName As String
    
    '■ファイル名取得するフォルダパス、該当拡張子を入れる
    Path = "C:\Sample\"
    FName = Dir(Path & "*.xlsx")  'ワイルドカード(*)を使用し、xlsx拡張子のファイルを全て
    
    '■Loopでファイルを取得→開く→処理→保存→閉じる
    Do While FName <>""
       Workbooks.Open Path & FName
       Cells(1, 1) = 1
       ActiveWorkBook.Save
       ActiveWorkBook.Close
       
       FName = Dir()
    Loop
End Sub
フォルダ内の全てのファイルに対して処理を行い、上書き保存をします。
今回は、下記の記事の応用編です。
Dir関数についてはこちらを参照。
単純にファイル一覧を抜き出したい場合はこちらを参照。

さらに応用(フォルダ内の全ファイル、全シートに処理をする)

今回は開いたシート(ActiveSheet)のセルA1に「1」と入力して保存をしました。

実際の業務においては「フォルダ内の全ファイル、全シートに処理をする」事も求められるはずです。
顧客へ成果物として提出する際、綺麗な形で納品をする事で、丁寧な業者と感じて頂けるはずです。

下記のパーツを組み合わせて使用し、一段階上の成果物としてみてはいかがでしょうか。

コメント

タイトルとURLをコピーしました