前提・実現したいこと
Windows7 Excel2016の環境において、フォルダ内のxlsxファイルを一括でそれぞれcsv(UTF-8)として出力したい
その際、元ファイルの2行目以降から書き出したい。
VBScript上で.xlsxから.csvから書き出す際に.xlsx上の2行目から書き出しを開始させたいのです。
現在は、以下のVBScriptを.xlsxファイルのあるフォルダ内で実行することで、同一フォルダ内にcsvファイルを作成することには成功しています。
しかしながら、元ファイルの1行目は不要であるために、VBSrcriptでcsvとして書き出しを行う過程で2行目から開始させたいのですが、
"2行目から書き出しを行う"という記述方法がわからないため困っております。
曖昧な日本語の為に齟齬を生んでしまい誠に申し訳ありません。
発生している問題・エラーメッセージ
xlmsからCSV(UTF8)は実現済み
一方で、2行目以降から書き出す方法がわかりません。
該当のソースコード
以下https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10172193380の引用をそのまま使っています。
Option Explicit
Dim a, b, e, f, m, n, s, t, z
Set s = CreateObject("Scripting.FileSystemObject")
Set f = s.GetFolder(".")
Set e = CreateObject("Excel.Application")
e.Application.DisplayAlerts = False
e.Visible = False
Set a = CreateObject("ADODB.Stream")
For Each m In f.Files
If LCase(s.GetExtensionName(m.Name)) = "xlsx" Then
Set b = e.Workbooks.Open(f & "" & m.Name)
n = f & "" & s.GetBaseName(m.Name)
b.SaveAs n & ".txt", 42
b.Close
Set b = Nothing
Set t = s.OpenTextFile(n & ".txt", 1,, True)
a.Type = 2
a.Charset = "UTF-8"
a.Open
z = t.ReadAll
z = Replace(z, vbTab, ",")
a.WriteText z, 1
a.SaveToFile n & ".csv", 2
a.Close
t.Close
Set t = Nothing
s.DeleteFile(n & ".txt")
End If
Next
Set a = Nothing
Set b = Nothing
Set e = Nothing
Set f = Nothing
Set s = Nothing
MsgBox("Finished!")
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー