アプリ版:「スタンプのみでお礼する」機能のリリースについて

セルを1個づつ上にずらせ1番下に新しいデータを書き込むようにしたくて次のようなプロシージャーで行っていますが
'PROG1:
Sheets("sheet2").Select
Range("V10:Z98").Select
Selection.Copy
Range("V9").Select
ActiveSheet.Paste
Application.CutCopyMode = False
PROG1:4回繰り返します。
sheet1で作業をしていて上のように実行しますと画面が4回動いてしまします。
'PROG2:
If Sheets("sheet2").Range("A23") = "MC1" Then
Set objFrom = ThisWorkbook.Worksheets("あきない02")
Set objTo = ThisWorkbook.Worksheets("あきない02")
For i = 10 To 98
For j = 22 To 26
'objFrom.Cells(i, j).Copy Destination:=objTo.Cells(i - 1, j)
objTo.Cells(i - 1, j).Value = objFrom.Cells(i, j).Value
Next j
Next i
End If
PROG2を4回繰り返します。すると画面は動かなくていいのですが終わるまでに3分ほどかかります。
画面を動かさずにもっと早くできる方法はないでしょうか?

A 回答 (2件)

prog1の最初で


application.screenupdating=false
最後で
application.screenupdating=true
↑これを忘れないで下さい

これで、処理中に画面が切り替わることはなくなるはずです
    • good
    • 0
この回答へのお礼

画面を変えずにできましたありがとうございました。

お礼日時:2008/04/12 13:37

PROG1で、Selectをしている部分で対象を表示してしまうので、こんなのではどうでしょうか?


Sheets("sheet2").Range("V10:Z98").Copy Destination:=Sheets("sheet2").Range("V9")
    • good
    • 0
この回答へのお礼

これで画面が変わる煩わしさから開放されます。ありがとうございました。

お礼日時:2008/04/12 13:39

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