まだ開いていたので、一応の完成形の一例を挙げてみます。
例データ CSVファイルの例を拾ったもの。
(見る場合は、下記をコピペして、メモ帳で開くこと。エクセルで開かないこと。)
全国地方公共団体コード,郵便番号,都道府県名,,,市区町村名,町域名,都道府県名,市区町村名,町域名
13101,1000000,トウキョウト,チヨダク,東京都,千代田区
13101,1020072,トウキョウト,チヨダク,イイダバシ,東京都,千代田区,飯田橋
13101,1020082,トウキョウト,チヨダク,イチバンチョウ,東京都,千代田区,一番町
13101,1010032,トウキョウト,チヨダク,イワモトチョウ,東京都,千代田区,岩本町
13101,1010047,トウキョウト,チヨダク,ウチカンダ,東京都,千代田区,内神田
’ーーーー
コード例
フォルダ名とファイル名は適宜変えること。
VBSではあるが、ファイルを扱うので、FSOを使う。
Set fso = CreateObject("Scripting.FileSystemObject")
'----
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set file1 = fso.OpenTextFile("C:\Users\XXXX\Desktop\csvデータ例5.csv")
Set file2 = fso.OpenTextFile("text1.csv", ForWriting, true)
'---------ファイルを読む
Do While file1.AtEndOfStream <> True
'// ファイルから1行取得
x = file1.ReadLine
msgbox x
'---チェック
l1=len(x)-len(replace(x,",",""))
if l1 > 3 then
'msgbox l1
else
msgbox "3列なし "
end if
'----------3番目のカンマを探索
s=1
for i=1 to 3 '3回カンマを探索
p=instr(s,x,",")
s=p+1
next
'------‐文字列を加工 ,, を挿入
str=mid(x,1,p) & ",," & mid(x,p+1,len(x)-p)
file2.WriteLine(str)
'---次レコードで繰り返し
Loop
'-----------------終了
'ファイルをクローズ
file1.Close
file2.close
'オブジェクト消去
Set fso = nothing
メモ帳に上記をコピペして、拡張子を.VBSで保存すること。実行しやすいので、デスクトップに保存を、お勧めする。
このアイコンをDクリックして実行。
結果
(内容的、意味的には、ここに列挿入する内容ではなく、不自然ですが。)
D,E列に当たるところに空白列ができた。
全国地方公共団体コード,郵便番号,都道府県名,,,市区町村名,町域名,都道府県名,市区町村名,町域名
13101,1000000,トウキョウト,,,チヨダク,東京都,千代田区
13101,1020072,トウキョウト,,,チヨダク,イイダバシ,東京都,千代田区,飯田橋
13101,1020082,トウキョウト,,,チヨダク,イチバンチョウ,東京都,千代田区,一番町
13101,1010032,トウキョウト,,,チヨダク,イワモトチョウ,東京都,千代田区,岩本町
13101,1010047,トウキョウト,,,チヨダク,ウチカンダ,東京都,千代田区,内神田
ヘッダーの見出しの文句に当たるもののセットは上記では略している。