プロが教えるわが家の防犯対策術!

見よう見まねで以下のようなコードを書いてみたのですが、
これだと表示にやや時間がかかるので改善したいです。

------
Sub コピペ()

Dim i As Long
i = Range("A1")

Range("C12").Value = Worksheets("sheet2").Cells(i, 2).Value
Range("D12").Value = Worksheets("sheet2").Cells(i, 3).Value
Range("E12").Value = Worksheets("sheet2").Cells(i, 4).Value
Range("F12").Value = Worksheets("sheet2").Cells(i, 5).Value
Range("G12").Value = Worksheets("sheet2").Cells(i, 7).Value
------

こんな感じでコピペしたい値があと15個くらいあります。
コピー元とコピー先のセル配置には法則性があまりありません。
よろしくお願いします。

A 回答 (2件)

そのマクロで「遅いと感じられる」のでしたら、それはマクロのせいじゃなくシートの問題と考えられます。



#あるいはご相談に関係ないと思って掲示しなかった箇所のマクロが実は遅い直接の原因なのかも?しれませんが、それはこのご相談ではどーしようもない範疇なので、そういう事は無いとします。


対処の例:
sub macro1()
 dim i as long
 i = range("A1")

 application.calculation = xlcalculationmanual
 range("C12:F12").value = worksheets("Sheet2").cells(i, "B").resize(1, 4).value
 range("G12").value = worksheets("Sheet2").cells(i, "G").value
 application.calculation = xlcalculationautomatic

end sub
みたいなカンジで、再計算を抑制して効果があるか見てみます。
    • good
    • 0
この回答へのお礼

解決しました!
再計算の問題だったようです。
ありがとうございました。

お礼日時:2014/01/28 17:55

画面描画の抑止・抑止解除を使用すれば、早くなります。



参考URL:http://officetanaka.net/excel/vba/speed/s1.htm
    • good
    • 0
この回答へのお礼

残念ながら画面描画の問題ではありませんでした。
ありがとうございました。

お礼日時:2014/01/28 17:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!