私はここに必要なExcelテンプレートを提供しています。私の現在のシナリオとして、このExcelは修正パスに格納されます。しかし、CSVは毎日生成されます。VBScriptでExcelをカスタマイズする
私のVBスクリプトはcsvからデータを収集し、このExcelに書き込むためには毎日実行する必要がありますが、小さなカスタマイズが必要です。
ここで最初の3行は固定ヘッダーです。私はcsvを変換し、4行目からExcelの値を書き込む必要があります。明らかに私たちはそこに古いデータを持っています。 4行目から7行目までを削除し、csv値を必要な場所に配置する必要があります。適切な国境にも。
このタイプの出力を得るために私のvbsを変更することは可能ですか?
cscript C:\Test\MyScript.vbs \\C:\Test\Sample.CSV \\C:\Test\Sample.xlsx
オリジナルのスクリプトは以下の通りです実行するために2つの引数を必要とします...以下のように MyScript.vbsをスクリプトを実行する
。私は以下のようなスクリーンショットを見たいと思う。
srccsvfile = Wscript.Arguments(0)
tgtxlsfile = Wscript.Arguments(1)
'Create Spreadsheet
'Look for an existing Excel instance.
On Error Resume Next ' Turn on the error handling flag
Set objExcel = GetObject(, "Excel.Application")
'If not found, create a new instance.
If Err.Number = 429 Then '> 0
Set objExcel = CreateObject("Excel.Application")
End If
objExcel.Visible = False
objExcel.DisplayAlerts = False
'Import CSV into Spreadsheet
Set objWorkbook = objExcel.Workbooks.Open(srccsvfile)
Set objWorksheet1 = objWorkbook.Worksheets(1)
'Adjust width of columns
Set objRange = objWorksheet1.UsedRange
objRange.EntireColumn.Autofit()
'This code could be used to AutoFit a select number of columns
'For intColumns = 1 To 17
' objExcel.Columns(intColumns).AutoFit()
'Next
'Make Headings Bold
objExcel.Rows(1).Font.Bold = True
'Freeze header row
With objExcel.ActiveWindow
.SplitColumn = 0
.SplitRow = 1
End With
objExcel.ActiveWindow.FreezePanes = True
'Add Data Filters to Heading Row
objExcel.Rows(1).AutoFilter
'set header row gray
objExcel.Rows(1).Interior.ColorIndex = 15
'-0.249977111117893
aList=Array("NOT ", "NO ", "NONE", "!")
For each item in aList
For Each c In objWorksheet1.UsedRange
If InStr(1, c.Value, item) > 0 Then
c.Interior.ColorIndex = 6
End If
Next
next
'Save Spreadsheet, 51 = Excel 2007-2010
objWorksheet1.SaveAs tgtxlsfile, 51
'Release Lock on Spreadsheet
objExcel.Quit()
Set objWorksheet1 = Nothing
Set objWorkbook = Nothing
Set objExcel = Nothing
ヘッダーと凡例をスクリーンショットとして修正する必要があります。
しかし、別の方法もあります。上記のスクリーンショット(ヘッダーをマージ、境界線、フリーズ、グリッド線を削除)のようにヘッダーを作成し、下部に凡例を追加できる変更されたvbスクリプトを入手できれば、毎日既存のエクセルに書き込む必要はありません。いつでもvbsを実行すると古いExcel(存在する場合)をこの適切な形式に置き換える必要があります。
のいずれかを使用して1つのコマンドですべての列を自動調整することができます.Columns.Autofit() '**とそれはあなたのためにオートフィットトリックを行う必要があります。 – ian0411