Excel VBA 初心者です。指定ホルダ内の全てのCSVにMacroを実行したいのですがうまくいきません。
対象データは指定ホルダ内の全CSVファイル。
算出条件がBook内にありますが(セル番地の数値を読むようにしてあります)、以下のMacroのCSV処理をすると算出条件が見つからなくてストップしてしまいます。(Book内のデータに実行した場合は問題ないです)
※「 'CSVに対する処理 ActiveなBookとして処理します。」の部分に処理用のMacroをCallしています。
上記の問題の解決として
A案
(1)作業用のBookにCSVのデータを[Sheet1]呼びだす→(2)Macroを実行→(3)保存
→(4)[Sheet1]のDataClear→(1)に戻り指定ホルダ内のファイルがなくなるまで繰り返す。
B案
以下のMacroにコードを付加してBook内の算出条件を読み込ませる。
と考えましたが、初心者故の未熟で解決できません。どなたか、助けてください。
何卒よろしくお願いいたします。
Sub Macro()
Dim FSO, FDC, FL
Dim FPath As String, Opath As String
Dim i As Long
Set FSO = CreateObject("Scripting.FileSystemObject") 'Filesystemobjectを使用する
FPath = "E:\test\" '入力フォルダ
Opath = "E:\test\ttt\" '出力フォルダ
Set FDC = FSO.getfolder(FPath).Files 'パスのファイルコレクションを取得
For Each FL In FDC
If UCase(FSO.GetExtensionName(FL)) = "CSV" Then '拡張子がCSVだったら
Workbooks.Open FL 'Openする
'
'CSVに対する処理 ActiveなBookとして処理します。
'
Application.DisplayAlerts = False '保存しますかのメッセージを止める
ActiveWorkbook.SaveAs Opath & "R" & FL.Name '名前を付けて保存
ActiveWorkbook.Close 'Closeする
Application.DisplayAlerts = True 'メッセージ出力をもとに戻す
End If
Next
End Sub