| 
    
     |  | Function copy2(rngFrom As Range, rngTo As Range) Dim v
 v = rngFrom.Value
 rngTo.Resize(UBound(v, 1), UBound(v, 2)) = v
 End Function
 と定義しておいて、
 
 Call copy2(ws1.Range("AA157:AD256"),ws2.Range("H155"))
 などとしてみてはどうですか?
 
 今のコードでもセルを一つずつコピーしているわけではないから、
 どの程度のスピードアップにつながるのかは不明だが。
 (3割くらいにはなるのかも)
 
 以下のようにして速度を測り、その結果をフィードバックしてください。
 dim t
 t = Timer
 ' ここで作業
 Debug.Print Timer - t '経過時間の出力
 
 それから転記先に計算式が多いのであれば、
 手動計算モードにしてから処理実行し、終了後、自動計算に戻すとよいでしょう。
 今のコードでも効果あるかもしれません。
 
 # なお、転記元、先に一定の規則性のようなものがありそうで、
 # 記述の短縮が図られそうな気もするが、それには触れません。
 
 
 |  |