質問するログイン新規登録

回答編集履歴

1

参考解を追記

2021/11/18 13:39

投稿

takanaweb5
takanaweb5

スコア365

answer CHANGED
@@ -26,4 +26,36 @@
26
26
  '結果を表示
27
27
  Call Worksheets(1).Cells(1, 1).CopyFromRecordset(objRecordset)
28
28
  End Sub
29
+ ```
30
+  
31
+ 追記
32
+ こんなことも出来るよという参考程度に
33
+
34
+ 注意
35
+ 実行後にschema.iniというファイルが作成されてしまうので不要であれば消す必要があります。
36
+ また、実行前に出力ファイルがすでに存在すればエラーになります。
37
+ データタイプが文字列と判定されたカラムの値は、コーテーションで囲われてしまいます。
38
+ ```vb
39
+ Sub ReadCsv()
40
+ Const PATH = "z:\" '対象ファイルのフォルダに変更してください
41
+ Const INFILE = "[aaa.csv]" '入力ファイル名に変更してください
42
+ Const OUTFILE = "[BBB.txt]" '出力ファイル名に変更してください
43
+
44
+ Dim objCon As Object
45
+ Set objCon = CreateObject("ADODB.Connection")
46
+ objCon.Provider = "Microsoft.ACE.OLEDB.12.0"
47
+ objCon.Properties("Extended Properties") = "Text;HDR=NO"
48
+ Call objCon.Open(PATH)
49
+
50
+ 'SQL文作成
51
+ Dim strSQL As String
52
+ strSQL = "SELECT DISTINCT F1,F2 INTO " & OUTFILE & " FROM " & INFILE
53
+
54
+ 'テーブル作成クエリを実行しファイルを作成する
55
+ Dim objCommand As Object
56
+ Set objCommand = CreateObject("ADODB.Command")
57
+ objCommand.ActiveConnection = objCon
58
+ objCommand.CommandText = strSQL
59
+ Call objCommand.Execute
60
+ End Sub
29
61
  ```