回答編集履歴
1
参考解を追記
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
|
```
|