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

Excelで該当のCSVファイルを開くとE列の箇所に、漢字(名前)が表示されてます。
※空白のセルはありません
このようなCSVファイルを、このE列の漢字によってファイルを分割したい
と考えています。例えば
E列が斎藤であるCSVファイル(ファイル名:斎藤.csv)
E列が内藤であるCSVファイル(ファイル名:内藤.csv)
※可能であれば分割日付が名前の前につくファイル名がつけたい。

1つのCSVファイルが最大で複数分割させたいです。

できるだけ簡易に分割できる方法をご教授頂ければ幸いです。
どうぞよろしくお願い致します。

※A列からDJ列までデータが入っております。
※ExcelのVBAを用いた方法でお願い致します。(Excel2007、2003)

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

▽最新の回答へ

1 ● きゃづみぃ
●100ポイント ベストアンサー
Sub main()
Dim p As String
Dim f As String


p = "C:\test\"  '対象フォルダを指定してください。
f = "a.csv"  '対象ファイルを指定してください。

Call jikkou(p, f)

End Sub


Sub jikkou(p As String, f As String)

 dt = Format(Now(), "yyyyMMdd")
 
 ch1 = FreeFile
 Open p & f For Input As #ch1
 
 Do While Not EOF(ch1)  'ファイルの終端かどうかを確認します
 Line Input #ch1, textline  'データ行を読み込みます
 
 f = 0
 g = 0
 h = ""
 For e = 1 To Len(textline)
 If Mid(textline, e, 1) <> "," And g = 4 Then
 h = h & Mid(textline, e, 1)
 End If
 If Mid(textline, e, 1) = """" And f = 0 Then
 f = 1
 End If
 If Mid(textline, e, 1) = """" And f = 1 Then
 f = 0
 End If
 If Mid(textline, e, 1) = "," And f = 0 Then
 g = g + 1
 If g >= 5 Then Exit For
 End If
 Next e
 
 
 ch2 = FreeFile
 Open p & dt & h & ".csv" For Append As #ch2
 Print #ch2, textline  'データの書き込みをします
 Close #ch2
 
 Loop
 Close #ch1
 
End Sub


起動するときは、以下の設定をしてから実行してください。
p = "C:\test\" '対象フォルダを指定してください。
f = "a.csv" '対象ファイルを指定してください。

qlistさんのコメント
早速ご回答いただきして有難うございます! 試してみたのですが、「ファイル名または番号が不正です」と表示されとまってしまい、 デバッグというのを押すと以下のところが黄色くなっておりました。 Open p & dt & h & ".csv" For Append As #ch2 何か考えられる原因ございますでしょうか。 フォルダやファイル名は同じに場所にしております。 以上よろしくお願い致します。

きゃづみぃさんのコメント
>|vb| Open p & dt & h & ".csv" For Append As #ch2 の前に Debug.Print p & dt & h Debug.Print textline を追加して 実行してください。 ||< それでエラーが出た直前のイミディエイトに出力された最後の2行を 教えてください。
関連質問

●質問をもっと探す●



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