一度は関数の途中切れでおかしな数字を出したことありますよね。
私は大事な費用計上でやらかして泣きました。
オートフィルのやりかた
いろいろありますが、右下をダブルクリックが一般的ではないでしょうか
それをVBAで表現してみたいと思います。
お手軽コード
Range(“A1”).AutoFill Destination:=Range(“A1:A10”)
これでA1から↓に向かってA10までオートフィルができます。
簡単ですね。
Sub test1()
With Range(“A1”)
.Value = “1日”
.AutoFill Destination:=Range(“A1:A10”)
End With
End Sub
ちょっと物足りないですね。
現実的に使うなら
Range(“A1”).AutoFill Destination:=Range(“A1”).Resize(10)
この方法が良いと思います。
次のコードはA1からZ1までになにか関数が入っているとします。
それを別シートの行数分、一気にオートフィルさせます。
Sub test2()
Dim MaxRow As Long
MaxRow = Sheets(“Sheet1”).Cells(Rows.Count, 1).End(xlUp).Row
With Sheets(“Sheet2”).Range(“A1:Z1”)
.AutoFill Destination:=.Resize(MaxRow)
End With
End Sub
使い方としては、With Sheets(“Sheet2”).Range(“A1:Z1”) この部分が大事で
このRange(“A1:Z1”)の範囲がオートフィルする元と考えてください。
.AutoFill Destination:=.Resize(MaxRow)
この部分でどれくらいオートフィルするかが決まります。
.Resize(MaxRow) を .Resize(10) とすれば10行分オートフィルされます。
列のオートフィルもできる
Range(“A1”).AutoFill Destination:=Range(“A1”).Resize(,10)
Resize(,10)とするだけです。
Resizeは本当は Resize(10,10) のように行と列を入れる物なんですが、たいてい省いて Resize(10)みたいに書かれがちです。
それだけです。
おわり
更新忘れには気をつけましょう。
コメント