上記のコードに欠けているのは、Excelオブジェクトを完全に修飾していないことです。
vbsは何を理解するのでしょうColumns("G:G")
か?
これを試して
Dim objXLApp, objXLWb, objXLWs
Set objXLApp = CreateObject("Excel.Application")
Set objXLWb = objXLApp.Workbooks.Open("E:\Docs\Invoice.csv")
'~~> Working with Sheet1
Set objXLWs = objXLWb.Sheets(1)
With objXLWs
'/* Excel Macro starts */
.Columns("G:G").NumberFormat = "m/d/yyyy"
.Columns("H:H").NumberFormat = "0.00"
'/* Excel Macro ends */
End With
objXLWb.Save
objXLWb.Close (False)
Set objXLWs = Nothing
Set objXLWb = Nothing
objXLApp.Quit
Set objXLApp = Nothing
編集:私の唯一の懸念は、CSVファイルであるためnumberformatが保持されないことです。あなたはそれをExcelファイルとして保存したいかもしれませんか?
コード
Dim objXLApp, objXLWb, objXLWs
Set objXLApp = CreateObject("Excel.Application")
objXLApp.Visible = True
Set objXLWb = objXLApp.Workbooks.Open("E:\Docs\Invoice.csv")
'~~> Working with Sheet1
Set objXLWs = objXLWb.Sheets(1)
With objXLWs
.Columns("G:G").NumberFormat = "m/d/yyyy"
.Columns("H:H").NumberFormat = "0.00"
End With
'~~> Save as Excel File (xls) to retain format
objXLWb.SaveAs "C:\Sample.xls", 56
'~~> File Formats
'51 = xlOpenXMLWorkbook (without macro's in 2007-2010, xlsx)
'52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2010, xlsm)
'50 = xlExcel12 (Excel Binary Workbook in 2007-2010 with or without macro's, xlsb)
'56 = xlExcel8 (97-2003 format in Excel 2007-2010, xls)
objXLWb.Close (False)
Set objXLWs = Nothing
Set objXLWb = Nothing
objXLApp.Quit
Set objXLApp = Nothing