• 締切済み

複数ファイルへのVBAの処理について

最近、ExcelのVBAを使うようになりました。 しかし、以下のような処理を同じフォルダ内の複数のファイルに対して一気にやりたいのですが、わかる方いらっしゃいませんか? 理想としては同じフォルダ内で50個くらいを選択して一気にやりたいのですが・・・。 ******************************* Sub FFT() Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), Array(18, 1)), TrailingMinusNumbers:=True Range("E8").Select Application.Run "ATPVBAEN.XLA!Fourier", ActiveSheet.Range("$B$1:$B$256"), _ ActiveSheet.Range("$C$1:$C$256"), False, False Columns("C:C").ColumnWidth = 38.38 Range("D1").Select Columns("D:D").ColumnWidth = 20.75 Range("D1").Select ActiveCell.FormulaR1C1 = "=IMABS(RC[-1])" Range("D1").Select Selection.Copy Range("D1:D256").Select ActiveSheet.Paste Range("E6").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "" Range("E7").Select End Sub

みんなの回答

回答No.2

コードを処理対象のブックじゃないブックに記述し、対象フォルダ内のブックすべてに対して順次処理をするようにする。 Excel VBA のヘルプや Web 等で Workbooks コレクション Workbook 型 Worksheets コレクション Worksheet 型 について調べてみてください。 ユーザーの作業フローとしては、 1. マクロのブックを開く。 2. 対象フォルダを指定する。 3. 処理を開始する。 4. 終了。 プログラムのフローとしては Sub Start() ' 対象フォルダを決定 ' フォルダに含まれる全ブックをループでまわし、1ファイルずつ開く ' 開いたファイルを Workbook 型の変数で参照する ' FFT プロシージャに変数を引き渡す ' 開いたファイルを保存して閉じる ' 次のファイルを開く End Sub Sub FFT(target As Workbook) ' 受け取った Workbook の中の処理対象シートを Worksheet 型の変数で参照する ' シートに対して処理を行う End Sub

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.1

雛型となるエクセルファイル一本だけマクロ実行する。 その後、同一フォルダー上の複数にマクロ処理したシートをコピーする。 コピー元ファイル名:a.xls コピー元シート名 : sheet1 下記処理をコピー対象ファイル数分、繰り返し処理する。 Workbooks.Open ("コピー対象ファイル名") Workbooks("a.xls").Worksheets("Sheet1").Copy before:= Workbooks("コピー対象ファイル名").Worksheets(1) Workbooks(コピー対象ファイル名).Worksheets(1).Name = "TEST" Workbooks(コピー対象ファイル名).Save Workbooks(コピー対象ファイル名).Close

関連するQ&A

専門家に質問してみよう