dポイントプレゼントキャンペーン実施中!

VABでセルに計算式をLoopで設定する処理を作成したのですが、6000行ほどあるのでそれなりに時間が掛かります。
例えば、セルに計算式を1つ選択して、セルの右下隅(フィルハンドル)にマウスポインタを合わせ黒十字に変わったところでダブルクリックを行うと、一気に値や数式が設定されるかと思い
ますが、VBAでこのよな処理は可能なのでしょうか?
実際、計算式を1行入れて、オートフィルを実行するとLoopで実行するより遥かに早く処理が終了します。

A 回答 (2件)

こんな感じです。


Range("A1:A6000").Formula = "=数式"
    • good
    • 0
この回答へのお礼

知りたかったそのものでした。有難うございました。

お礼日時:2013/01/31 14:52

' Sheet1!A2 と Sheet1!B2 には数値が入っているとします。


' これが6000行繰り返しあるとします。
' このとき Sheet1!C2 に数式を入力し AutoFill するマクロ
Sub 例1()
' 画面更新を抑制
Application.ScreenUpdating = False

' 数式を設定
Sheet1.Range("c2").Formula = "=A2*B2"
' AutoFill を実行
Call Sheet1.Range("c2").AutoFill(Sheet1.Range("c2:c6000"))

' 画面更新を再開
Application.ScreenUpdating = True
End Sub

' 複数列の AutoFill
Sub 例2()
Application.ScreenUpdating = False

' 数式を設定
Sheet1.Range("c2").Formula = "=A2*B2"
Sheet1.Range("d2").Formula = "=C2*2"
' AutoFill を実行
Call Sheet1.Range("c2:d2").AutoFill(Range("C2", Cells(Sheet1.UsedRange.Rows.Count, 4)))

' Sheet1.Range(基準となるセル範囲).AutoFill(Range(左上のセル番地, 右下のセル番地))

Application.ScreenUpdating = True
End Sub
    • good
    • 0
この回答へのお礼

丁寧な解説、ありがとうございました。

お礼日時:2013/01/31 14:52

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