人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

質問です
c:\test\のホルダーに複数のCSVファイルがあります
列操作でB列に空白列を挿入するマクロをおねがいします
A列 b列 c列 d列
aaa bbb 111 ccc

結果
A列 b列 c列 d列 e列
aaa bbb 111 ccc



●質問者: inosisi
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● きゃづみぃ
●100ポイント ベストアンサー
Sub main()
Dim p As String
'対象フォルダを指定してください。
'このフォルダに この実行用のブックは 入れないでください。

p = "C:\test\"

'処理対象となる拡張子を指定して 呼び出します。
Call jikkou(p, "csv")

End Sub


Sub jikkou(p As String, s As String)

Dim bk() As String
Application.DisplayAlerts = False
 
f = Dir(p & "*." & s, vbNormal)

Do While f <> ""
 k = 0
 ReDim bk(k)
 
 ch1 = FreeFile
 Open p & f For Input As #ch1
 
 Do While Not EOF(ch1)  'ファイルの終端かどうかを確認します
 Line Input #ch1, textline  'データ行を読み込みます
 ReDim Preserve bk(k)
 bk(k) = textline
 k = k + 1
 Loop
 Close #ch1
 
 ch2 = FreeFile
 Open p & f For Output As #ch2
 For i = 0 To k - 1
 textline = bk(i)
  '先頭が " なら 次の "まで 一項目とする。
 If Left(textline, 1) = """" Then
 c = InStr(2, textline, """")
 textline = Left(textline, c) & "," & Right(textline, Len(textline) - c)
 Else
 c = InStr(1, textline, ",")
 If c = 0 Then c = Len(textline)
 textline = Left(textline, c) & "," & Right(textline, Len(textline) - c)
 End If
 
 Print #ch2, textline  'データの書き込みをします
 Next i
 Close #ch2
 
 f = Dir
Loop

Application.DisplayAlerts = True

End Sub


CSVなので 一番目と二番目の間にカンマを入れて 空の項目を作って保存するようにしました。


inosisiさんのコメント
ありがとうございました 上手くいきましたまた何かございましたら 質問させていただきます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ