VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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 = 〜
をセルの数だけ繰り返すよりも、動作を高速化させる事ができます。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -