回答編集履歴

1

参考解を追記

2021/11/18 13:39

投稿

takanaweb5
takanaweb5

スコア359

test CHANGED
@@ -55,3 +55,67 @@
55
55
  End Sub
56
56
 
57
57
  ```
58
+
59
+  
60
+
61
+ 追記
62
+
63
+ こんなことも出来るよという参考程度に
64
+
65
+
66
+
67
+ 注意
68
+
69
+ 実行後にschema.iniというファイルが作成されてしまうので不要であれば消す必要があります。
70
+
71
+ また、実行前に出力ファイルがすでに存在すればエラーになります。
72
+
73
+ データタイプが文字列と判定されたカラムの値は、コーテーションで囲われてしまいます。
74
+
75
+ ```vb
76
+
77
+ Sub ReadCsv()
78
+
79
+ Const PATH = "z:\" '対象ファイルのフォルダに変更してください
80
+
81
+ Const INFILE = "[aaa.csv]" '入力ファイル名に変更してください
82
+
83
+ Const OUTFILE = "[BBB.txt]" '出力ファイル名に変更してください
84
+
85
+
86
+
87
+ Dim objCon As Object
88
+
89
+ Set objCon = CreateObject("ADODB.Connection")
90
+
91
+ objCon.Provider = "Microsoft.ACE.OLEDB.12.0"
92
+
93
+ objCon.Properties("Extended Properties") = "Text;HDR=NO"
94
+
95
+ Call objCon.Open(PATH)
96
+
97
+
98
+
99
+ 'SQL文作成
100
+
101
+ Dim strSQL As String
102
+
103
+ strSQL = "SELECT DISTINCT F1,F2 INTO " & OUTFILE & " FROM " & INFILE
104
+
105
+
106
+
107
+ 'テーブル作成クエリを実行しファイルを作成する
108
+
109
+ Dim objCommand As Object
110
+
111
+ Set objCommand = CreateObject("ADODB.Command")
112
+
113
+ objCommand.ActiveConnection = objCon
114
+
115
+ objCommand.CommandText = strSQL
116
+
117
+ Call objCommand.Execute
118
+
119
+ End Sub
120
+
121
+ ```