[Xp professional vb6.0 Excel2002]
先ほど誤って送信しました。
8000行8列のエクセルファイルをテキストファイル(カンマ区切り)に作り変えます。
その際に、できるだけ処理が早い方法を探しています。理想は数秒です。
これまで試したのは、
1.
n = FreeFile
endRow = xlSheet.Cells(65536, 1).End(xlUp).Row
Open "temp.txt" For Output As #n
For i = 1 To endRow
a = xlSheet.Cells(i, 1)
Write #n, a
Next i
Close #n
2.
xlSheet.Range(Cells(1, 1), Cells(endRow, 7)).Copy
n = FreeFile
Open "temp.txt" For Output As #n
Print #n, Clipboard.GetText()
Close #n
3.エクセルファイルを開き、SaveAsでFileName="temp.txt" FileType=xlCSV で保存する。
とする3つです。もっとも早いのは2のクリップボード経由でした。
ただし、2はこの後にテキストファイルのタブ区切りをカンマに置換する工程が入ります。
他にDAOを使う方法も調べましたが、技術不足なためまだ試していません。
他にどのようなアイデアがあるかご教授願います。
追加です。
1.に関して、For内の処理はa〜hの8つ行われます。
Write #n, a & "," & b & "," & c & "," & D & "," & e & "," & f & "," & g & "," & h
です。
誤り送信スレに回答いただいた、魔界の仮面弁士さん、Blueさん、申し訳ありませんでした。
結局 ちゃんとした CSVファイルになるまでに要する時間は3が一番早くなるのでしょうか?
(2はタブ区切りCSVファイル→タブの置換処理を合わせて計測すべき)
SaveAsを使いました。
ツイート | ![]() |