見出し画像

VBA|Range|FillDown|指定範囲の上端セルの内容や式を下方向に埋める


基本構文

Range.FillDown

・対象Range:上端(1行目)の値/式を、範囲の下側へ埋める範囲(1列以上、2行以上が基本)

・戻り値の型・性質:
 ○Variant 型(処理結果。通常は戻り値を使用しない)
 ○上端セル(または上端行)の内容/式を下方向へフィルする


サンプルコード

サンプル①:A1の式を最終行まで埋める
役割:A列の先頭にある式を下まで展開する
理由:ループで式を入れずに一括で埋めるため
注意:対象範囲が1セルだと“埋め先”が無く効果がない

Sub Sample_FillDown_ColumnA()

    With Worksheets("aaa")

        Dim lastRow As Long
        lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

        ' A1 の内容/式を A列最終行まで埋める
        .Range("A1:A" & lastRow).FillDown

    End With

End Sub

サンプル②:1行目(A1:D1)を下へ埋める
役割:先頭行の式や値を、同じ列範囲で下へ展開する
理由:複数列をまとめて埋められるため
注意:範囲は「元(1行目)+埋め先(2行目以降)」を含めて指定する

Sub Sample_FillDown_MultiColumns()

    With Worksheets("aaa")

        Dim lastRow As Long
        lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

        ' 1行目(A1:D1)を lastRow まで埋める
        .Range("A1:D" & lastRow).FillDown

    End With

End Sub

備考

・FillDown は“フィル”動作のため、式の相対参照が自然に展開される。
・罫線や書式も含めて揃えたい場合は CopyDown を使う選択肢もある。
・1セルだけに対して FillDown しても変化しない。

いいなと思ったら応援しよう!

Parusの寺小屋 技術メモや学習の整理として書いています。 もし内容が役に立ったり、続きを読みたいと思っていただけたら、 応援として受け取らせてもらえたら嬉しいです。