投稿日 | : 2003/08/25(Mon) 23:29 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re: VBからExcelのセルに値を代入するときの処理速度 |
> objXlSheet.Cells(intRow, intCol).Value = s '結果を代入(s は'○'とか'×'です)
> objXlSheet.Cells(intRow, intCol).Value = CDate(txtDate.Text) '日付を代入
Rangeメソッドを使って複数のセル範囲を取得し、そこに値を代入してみては如何でしょう。
例えば、
With objXlSheet.Range("C3:E17")
.NumberFormat = "dd日 hh時mm分"
.Value = Now
End With
のようにすれば、C3〜E17までの15行3列の範囲、すなわち45個のセル全てに同じ値・設定を施せます。
あるいは、
Dim V As Variant
With objXlSheet.Range("C3:E17")
V = .Value
V(1, 1) = "1行1列"
V(1, 2) = "1行2列"
V(1, 3) = "1行3列"
V(2, 1) = "2行1列"
V(2, 2) = "2行2列"
V(2, 3) = "2行3列"
:
:
.Value = V '☆
End With
のように、配列として扱う方法もあります。
この場合、セルへの代入操作は ☆印の行でしか行われませんので、
objXlSheet.Cells(行, 列).Value = 〜
をセルの数だけ繰り返すよりも、動作を高速化させる事ができます。