Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


17370 / 76738 ←次へ | 前へ→

【64823】Re:CSVの取込について
発言  超初心者  - 10/3/16(火) 16:44 -

引用なし
パスワード
   ▼たつ さん:
>6万件以上のCSVデータをエクセルへ出力するようにマクロを組みました

件数が多いようなので、余計な事とは思いつつ、
DAOを使ってみてはいかがかと思い、作ってみました。

'要参照設定「Microsoft DAO X.X Object Library」
Sub test_sample()
  Dim myDB As DAO.Database
  Dim myRS As DAO.Recordset
  Dim mySQL As String
  Dim myPath As String
  Dim myCsvNM As String
  Dim myField() As String
  Dim myLoop As Long
  
  myPath = "C:TEST"
  myCsvNM = "集計.csv"
  
  Set myDB = DBEngine.Workspaces(0).OpenDatabase(myPath, False, False, "Text;HDR=YES;")
  
  '項目名取得
  mySQL = "SELECT * FROM " & myCsvNM
  Set myRS = myDB.OpenRecordset(mySQL, dbOpenSnapshot)
  For myLoop = 1 To myRS.Fields.Count
    ReDim Preserve myField(1 To 1, 1 To myLoop)
    myField(1, myLoop) = myRS(myLoop - 1).Name
  Next myLoop
  Set myRS = Nothing
  
  '出力x3
  mySQL = "SELECT * FROM " & myCsvNM & " WHERE [" & myField(1, 2) & "] Like '1*' "
  Set myRS = myDB.OpenRecordset(mySQL, dbOpenSnapshot)
  With Sheets("1")
    .Range(.Cells(1, 1), .Cells(1, UBound(myField, 2))).Value = myField
    .Range("A2").CopyFromRecordset myRS
  End With
  Set myRS = Nothing
  
  mySQL = "SELECT * FROM " & myCsvNM & " WHERE [" & myField(1, 2) & "] Like '2*' "
  Set myRS = myDB.OpenRecordset(mySQL, dbOpenSnapshot)
  With Sheets("2")
    .Range(.Cells(1, 1), .Cells(1, UBound(myField, 2))).Value = myField
    .Range("A2").CopyFromRecordset myRS
  End With
  Set myRS = Nothing
  
  mySQL = "SELECT * FROM " & myCsvNM & " WHERE [" & myField(1, 2) & "] Not Like '1*'" & _
      " And [" & myField(1, 2) & "] Not Like '2*' "
  Set myRS = myDB.OpenRecordset(mySQL, dbOpenSnapshot)
  With Sheets("その他")
    .Range(.Cells(1, 1), .Cells(1, UBound(myField, 2))).Value = myField
    .Range("A2").CopyFromRecordset myRS
  End With
  Set myRS = Nothing
  
  Set myDB = Nothing
End Sub

半分、私の"自己満足"なので、不要ならスルーして下さい^^;

0 hits

【64820】CSVの取込について たつ 10/3/16(火) 13:49 質問
【64822】Re:CSVの取込について 超初心者 10/3/16(火) 16:14 発言
【64824】Re:CSVの取込について たつ 10/3/16(火) 16:48 質問
【64825】Re:CSVの取込について 超初心者 10/3/16(火) 17:49 発言
【64832】Re:CSVの取込について たつ 10/3/17(水) 16:21 お礼
【64823】Re:CSVの取込について 超初心者 10/3/16(火) 16:44 発言
【64839】Re:CSVの取込について たつ 10/3/18(木) 13:06 質問
【64841】Re:CSVの取込について 超初心者 10/3/18(木) 13:45 発言
【64843】Re:CSVの取込について たつ 10/3/18(木) 14:06 質問
【64844】Re:CSVの取込について 超初心者 10/3/18(木) 14:20 発言
【64847】Re:CSVの取込について たつ 10/3/18(木) 15:43 お礼

17370 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free