Excel VBA質問箱 IV

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

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


51760 / 76732 ←次へ | 前へ→

【29830】Re:CSVからデータの取込
発言  小僧  - 05/10/14(金) 14:58 -

引用なし
パスワード
   ▼ほびっとさん、awu さん:
こんにちは。

Sub 配列でやってみよう()
Dim intFF As Long
Dim sCon(1 To 15) As Variant
Dim sCbf As Long
Dim Data() As Variant
Dim i As Long
Dim j As Long

  intFF = FreeFile
  Open ThisWorkbook.Path & "\tmp.csv" For Input As #intFF
  
  i = 0
  Do Until EOF(intFF)
  Input #intFF, sCon(1), sCon(2), sCon(3), sCon(4), sCon(5), sCon(6), sCon(7), sCon(8), _
          sCon(9), sCon(10), sCon(11), sCon(12), sCon(13), sCon(14), sCon(15)
    If Not sCbf = sCon(1) Then
      '配列にいれてみよう
      ReDim Preserve Data(8, i)
      For j = 0 To 7
        Data(j, i) = sCon(j + 1)
      Next
      i = i + 1
      sCbf = sCon(1)
    End If
  Loop
  Close #intFF
  ActiveSheet.Cells(1, 1).Resize(UBound(Data, 2) + 1, 8).Value = Application.Transpose(Data)
  ActiveSheet.Cells(1, 1).Resize(UBound(Data, 2) + 1, 8).NumberFormatLocal = "@"
End Sub

やっている事が余り変わりないので、速度は awu さんと同じくらいでしょうか。


>処理をデータベースクエリで行ったら、
>早くなるような気がするのですが、方法が分かりません。

この速度でもまだ遅いと思われるのでしたら、ADO なり DAO で処理も
考えてみようと思いますがいかがでしょうか。

※ もし、使われている元の csv が Ken_ALL でしたら、
  テーブルを扱う上では「一番上」という概念がないので

>データが変わる最初の行

  という判断は出来ない事になりますね。
  (フィールド 3 の値が最小のものをグループ化は可能ですが。)

0 hits

【29823】CSVからデータの取込 ほびっと 05/10/14(金) 12:01 質問
【29828】Re:CSVからデータの取込 awu 05/10/14(金) 14:34 回答
【29830】Re:CSVからデータの取込 小僧 05/10/14(金) 14:58 発言
【29838】Re:CSVからデータの取込 ほびっと 05/10/14(金) 15:59 質問
【29845】Re:CSVからデータの取込 小僧 05/10/14(金) 16:53 発言
【29850】Re:CSVからデータの取込 ほびっと 05/10/14(金) 17:14 発言
【29852】Re:CSVからデータの取込 小僧 05/10/14(金) 18:34 発言
【29853】Re:CSVからデータの取込 ほびっと 05/10/14(金) 19:25 お礼
【29848】Re:CSVからデータの取込 小僧 05/10/14(金) 17:09 発言
【29834】Re:CSVからデータの取込 awu 05/10/14(金) 15:15 発言
【29839】Re:CSVからデータの取込 ほびっと 05/10/14(金) 16:02 発言

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