[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『テキストファイル書き込みに時間が掛かる。』(ブラック&ホワイト)
下のコードで書き込みをすると時間が掛かかります。もっと早くできるやり方はありますか。
Dim lastRow As Long, row As Long, lastCol As Integer, col As Integer
Dim fileNumber As Integer, csvFile As Variant, i As Integer
csvFile = Application.GetSaveAsFilename("材料.csv", "CSV (*.csv),*.csv")
If csvFile = False Then End
On Error GoTo ErrorHandler
i = 100
lastRow = Cells(1110, i).End(xlDown).row
lastCol = Cells(1110, i).End(xlToRight).Column
fileNumber = FreeFile
Open csvFile For Output As #fileNumber
For row = 2 To lastRow
For col = 11 To lastCol - 2 Print #fileNumber, Cells(row, col) & ","; Next Print #fileNumber, Cells(row, col) & "" Next
Close fileNumber
ErrorHandler:
< 使用 Excel:unknown、使用 OS:unknown >
これを参照されてはいかが。 というか、同じ人でしょうか?
基準としているセルは、Cells(1110,100) つまり CV1110 と、HB1105 の違いはありますが ともに領域の最終を、xlDown と xlToRight で求めていますね。
あちらにもコメントしましたが、xlDown と xlToRight で求めている理由は?
あちらでは質問者さんからのレスがないのですが、このシート(というかデータ)の 具体的なレイアウトはどういうものですか?
(β) 2015/09/29(火) 05:16
それと、本題とは関係ありませんが
row As Long
変数の名前に row を使うのは避けたほうがいいですよ。 Rangeオブジェクトのプロパティ名と同じ名前なので紛らわしいということもありますし なによりも、この宣言を、一度行うと、以降、セル.Row とタイプしても(アップされたコードにもあるように) セル.row と、小文字の r になってしまいます。実害はないですが、最近、「これはなぜだ!」という質問がありました。
ちなみに、これ(小文字の r になってしまう現象)を復旧させるには、いったん Dim Row As Long といったような記述をした上で それを削除してブックを保存。これで、以降は復旧します。
(β) 2015/09/29(火) 05:50
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.