Excel xls,xlsx,xlsmをCSVへ変換する

Dim bk, xls, f, gf, fso, varArr, varRes

 

varArr = Array("xls","xlsx","xlsm") 'エクセルファイル拡張子を配列に格納

 

Setfso=CreateObject("Scripting.FileSystemObject")

Setgf=fso.GetFolder(fso.GetParentFolderName(WScript.ScriptFullName))

Setxls=CreateObject("Excel.Application")

xls.Application.DisplayAlerts=False

xls.Visible=False

 

ForEachfIngf.Files'フォルダ内のすべてのファイルに対して処理実行

 'ファイルの拡張子とエクセルファイル拡張子の一致チェック

varRes=Filter(varArr,LCase(fso.GetExtensionName(f.Name)))

'エクセルファイル拡張子と一致する場合>>CSVに変換処理実行

 If Ubound(varRes) <> -1 Then

 Set bk = xls.Workbooks.Open(gf & "\" & f.Name)

 bk.SaveAs gf & "\" & fso.GetBaseName(f.Name) & ".csv", 6

 bk.Close

 Set bk = Nothing

 End If

Next

 

'すべて忘れてメモリ解放

xls.Quit

Setxls=Nothing

Setgf=Nothing

Setfso=Nothing

MsgBox("Complete!!")