>コピーには色々方法があろうかと思いますが、
理屈はよくわかりませんが
コピー&ペーストだとメモリーの使用量に影響が必ずあるはずです。
お仕事のようですが コピーするのは
書式やフォントなどの一緒にコピーしなければならない作業なのでしょうか
私は、値を入れたいだけであれば
Worksheets("Sheet2").Range("E03:E24").Value = Range("A3:A24").Value
の1行で済ましてしまいます。
名前をつけたり、コピーしたりする必要もありません。
ちなみに
Range("C2").Value = Now
For i = 1 To 1000
Range("A003:A024").Name = "namA_Room"
Application.Goto Reference:="namA_Room"
Selection.Copy Destination:=Worksheets("Sheet2").Range("E03")
Next
Range("C3").Value = Now
End Sub
と
Range("B2").Value = Now
For i = 1 To 1000
Worksheets("Sheet2").Range("E3:E24").Value = Range("A3:A24").Value
Next
Range("B3").Value = Now
End Sub
同じ作業を1000回繰り返してみたら
5秒と1秒という結果でしたので 5倍ほど違いました。
メモリーが少ない場合はさらに違いが出てもおかしくないと思うのですが。
お礼
ご丁寧に、比較のの実行結果まで行なって頂き、ありがとうございます。 8年前はVB使い初めで、例題を見ながら作っていました。 最近、これが重たく感じられ、いつか作り直しをと思ってましたが そのままにしていました。 これを機会に、ご提案の内容を取り込み、作り直ししてみます。 ありがとうございました。 補足ですが、 私、クラスモジュールが、なかなか理解が出来なくて、最近なんとなく判ってきて 標準モジュールをクラスモジュールに置き換えながら進めていく予定です。