Excel VBA質問箱 IV

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

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


76542 / 76738 ←次へ | 前へ→

【4617】Re:".txt"ファイルの必要な列だけを読み込みExcelに貼り付けられませんか?
回答  Jaka  - 03/3/28(金) 16:12 -

引用なし
パスワード
   こんにちは。
1例です。
データ行数が何万行もあると、配列使っているほうが余計に遅くなると思います。
(書き込みに時間がかかりフリーズしたみたいにOr本当にフリーズしちゃいます。)
最近のPC性能ぐらいであれば、1つづつ書き込んで行ってもさほど時間は掛からないと思います。

実際、手動と比べて速いのかどうか解りませんが....。

配列使用
Sub hui()
  Dim Tbl() As Variant
  FileOpen = Application.GetOpenFilename("Excelファイル (*.txt), *.txt")
  If FileOpen <> False Then
    Open FileOpen For Input As #1
  Else
    End
  End If
  Do Until EOF(1)
    Line Input #1, Rdata
    DataCnt = DataCnt + 1
  Loop
  Close #1
  列数 = 15   '←ここのフィールド数を変えてください。
         'マクロでカンマ数を数えても良いんだけど、
         '実際のデータを見ていないので...。
  ReDim Preserve Tbl(1 To DataCnt, 1 To 1)
  Open FileOpen For Input As #1
  Do Until EOF(1)
    For I = 1 To 列数
      Input #1, Rdata
      If I = 6 Then   '6列目
       CNT = CNT + 1
       Tbl(CNT, 1) = Rdata
      End If
    Next
  Loop
  Close #1
  Range("A1:A" & DataCnt).Value = Tbl
  Erase Tbl
End Sub

ノーマル
Sub hui2()
  Dim Tbl() As Variant
  FileOpen = Application.GetOpenFilename("Excelファイル (*.csv;*.txt), *.csv;*.txt")
  If FileOpen <> False Then
    Open FileOpen For Input As #1
  Else
    End
  End If
  Do Until EOF(1)
    Line Input #1, Rdata
    DataCnt = DataCnt + 1
  Loop
  Close #1
  列数 = 15   '←ここのフィールド数を変えてください。
         'マクロでカンマ数を数えても良いんだけど、
         '実際のデータを見ていないので...。
  ReDim Preserve Tbl(1 To DataCnt, 1 To 1)
  Open FileOpen For Input As #1
  Do Until EOF(1)
    For I = 1 To 列数
      Input #1, Rdata
      If I = 6 Then   '6列目
       CNT = CNT + 1
       Range("A" & CNT).Value = Rdata
      End If
    Next
  Loop
  Close #1
End Sub

2 hits

【4603】".txt"ファイルの必要な列だけを読み込みExcelに貼り付けられませんか... めぎゅ 03/3/28(金) 11:10 質問
【4617】Re:".txt"ファイルの必要な列だけを読... Jaka 03/3/28(金) 16:12 回答
【4622】Re:".txt"ファイルの必要な列だけを読... めぎゅ 03/3/28(金) 18:34 質問
【4624】Re:".txt"ファイルの必要な列だけを読... Hirofumi 03/3/29(土) 10:13 回答
【4636】さらに・・・もう一つ めぎゅ 03/3/31(月) 13:30 質問
【4643】Re:さらに・・・もう一つ Hirofumi 03/3/31(月) 19:24 回答
【4664】ありがとうございます。さらにもう一点・・・ めぎゅ 03/4/1(火) 16:31 質問
【4667】Re:ありがとうございます。さらにもう一点・・・ Hirofumi 03/4/1(火) 20:27 回答
【4631】Re:".txt"ファイルの必要な列だけを... ポンタ 03/3/30(日) 18:16 回答
【4632】Re:".txt"ファイルの必要な列だけを読... Jaka 03/3/31(月) 10:28 回答
【4639】Re:".txt"ファイルの必要な列だけを読... めぎゅ 03/3/31(月) 14:05 質問
【4640】ごめんなさい。 Jaka 03/3/31(月) 16:27 回答
【4641】ちょっとびっくり。 Jaka 03/3/31(月) 16:35 発言
【4682】ありがとうございました! めぎゅ 03/4/2(水) 17:40 お礼

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