Excelマクロファイル一括処理(CSV→XLS)
新規ファイルを開いて、ボタンを設置。
ボタンの処理は、処理したいマクロをcallするだけ。
処理内容のマクロはボタンのところではなく、標準モジュールに書く
こんな感じ
Sub csv2xls()
Dim files As Variant ←複数ファイルを格納する
Dim filter As String ←ファイル選択ダイアログの拡張子フィルタ
Dim openfile As Variant ←処理中ファイル名
Dim xlsname As String ←保存用ファイル名生成用
filter = "CSV Files ,*.csv"
files = Application.GetOpenFilename(FileFilter:=filter, MultiSelect:=True)
If IsArray(files) Then
For Each openfile In files
Workbooks.Open Filename:=openfile
Call Procedure ←やりたい処理を呼ぶ
xlsname = Left(openfile, Len(openfile) - 3)
ActiveWorkbook.SaveAs Filename:=ActiveSheet.Name & ".xls", FileFormat:=xlNormal ←処理後にxls形式で保存
ActiveWorkbook.Close
Next
End If
'ThisWorkbook.Close ←マクロ本体を閉じる(必要なら活かす)
End Sub
やりたい処理の中は、ワークシートとか考慮無用。
記録したやつをそのままコピーでも問題なし。
いまさら2003ってのもどうかと思うけど、職場が・・・
あっ拡張子は付け足さなくてもいいのかな?こんど実験してみよう。
できるExcel マクロ&VBA編 2010/2007/2003/2002対応/小舘由典

¥1,659
Amazon.co.jp
新規ファイルを開いて、ボタンを設置。
ボタンの処理は、処理したいマクロをcallするだけ。
処理内容のマクロはボタンのところではなく、標準モジュールに書く
こんな感じ
Sub csv2xls()
Dim files As Variant ←複数ファイルを格納する
Dim filter As String ←ファイル選択ダイアログの拡張子フィルタ
Dim openfile As Variant ←処理中ファイル名
Dim xlsname As String ←保存用ファイル名生成用
filter = "CSV Files ,*.csv"
files = Application.GetOpenFilename(FileFilter:=filter, MultiSelect:=True)
If IsArray(files) Then
For Each openfile In files
Workbooks.Open Filename:=openfile
Call Procedure ←やりたい処理を呼ぶ
xlsname = Left(openfile, Len(openfile) - 3)
ActiveWorkbook.SaveAs Filename:=ActiveSheet.Name & ".xls", FileFormat:=xlNormal ←処理後にxls形式で保存
ActiveWorkbook.Close
Next
End If
'ThisWorkbook.Close ←マクロ本体を閉じる(必要なら活かす)
End Sub
やりたい処理の中は、ワークシートとか考慮無用。
記録したやつをそのままコピーでも問題なし。
いまさら2003ってのもどうかと思うけど、職場が・・・
あっ拡張子は付け足さなくてもいいのかな?こんど実験してみよう。
できるExcel マクロ&VBA編 2010/2007/2003/2002対応/小舘由典

¥1,659
Amazon.co.jp