|
DAO を使ってアクティブシートにデータをインポートする、というマクロを
提示します。
VBEのメニュー「ツール」「参照設定」で "Microsoft DAO 3.6 Library" に
チェックを付けて、空白シートを開いて実行して下さい。
なお、CSVファイルの保存先フォルダーのパスは、定数 Ph として宣言してますが
正確なパスではありませんので、そちらで変更して下さい。
Sub MyCSV_CopyByDAO()
Dim WS As DAO.Workspace
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim i As Long
Dim Cnt As Boolean
Dim MyF As String, TNm As String
Const Ph As String = _
"C:\Documents and Settings\User\デスクトップ\CSVフォルダ"
MyF = Dir(Ph & "\*.csv")
If MyF = "" Then
MsgBox "CSVファイルが見つかりません", 48: Exit Sub
End If
Set WS = DBEngine.Workspaces(0)
Do Until MyF = ""
TNm = Left$(MyF, Len(MyF) - 4)
Name Ph & "\" & MyF As Ph & "\" & TNm & ".txt"
Set DB = WS.OpenDatabase(Ph, 0, 0, "Text;")
Set RS = DB.OpenRecordset(TNm)
If Cnt = False Then
For i = 0 To RS.Fields.Count - 1
Cells(1, i + 1).Value = RS.Fields(i).Name
Next i
Cnt = True
End If
Range("A65536").End(xlUp).Offset(1) _
.CopyFromRecordset RS
RS.Close: DB.Close
Set RS = Nothing: Set DB = Nothing
Name Ph & "\" & TNm & ".txt" As Ph & "\" & MyF
MyF = Dir()
Loop
Set WS = Nothing
End Sub
|
|