Home » Excel VBA Rangeオブジェクト » Cellsプロパティ » AutoFillの引数DestinationをCellsで指定

AutoFillの引数DestinationをCellsで指定

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「excel vba cellsとautofillの組み合わせ」
という検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。

Excel VBA(Visual Basic for Applications)で、RangeオブジェクトのAutoFillメソッドの、

Excel.Range.AutoFill

引数・Destinationを指定する際に、Cellsプロパティを利用するには、どのようなオブジェクト式を書けばいいのかを探していた方による検索でしょうか。

この記事ではシンプルなマクロを2つご紹介しておきます。

[スポンサードリンク]

AutoFillメソッドの引数指定にCellsプロパティを利用して横方向にオートフィルするサンプルマクロ

以下のマクロを実行すると、A1セルに「1月」と入力されたあとに、L12セルまで、
  2月 3月 4月...
のように「12月」までの連続データがオートフィルされます。

Sub AutoFillメソッドとCellsプロパティの組み合わせ_横方向()
 Range("A1").Value = "1月"
 Range("A1").AutoFill _
   Destination:=Range(Cells(1, 1), Cells(1, 12))
End Sub

上記のマクロで使われている、
  Range("A1").AutoFill _
    Destination:=Range(Cells(1, 1), Cells(1, 12))
というオブジェクト式は、
  Range("A1").AutoFill _
    Destination:=Range("A1", "L1")

と同じ意味であることを、まず確認しましょう。

「excel vba cellsとautofillの組み合わせ」
と検索した方が探していたのは、
   Destination:=Range(Cells(1, 1), Cells(1, 12))
の部分だろうと想像しています。

Rangeオブジェクトの、AutoFillメソッドの引数・Destinationには、オブジェクトブラウザーに「Destination As Range」と表示されているとおり、Rangeオブジェクトを指定する必要があり、

Excel.Range.AutoFIll Destination

そのRangeオブジェクトはRange.AutoFillメソッドの仕様により、オートフィルする元のセルを含んだセル範囲を表している必要があります。

ですから、Range.AutoFillメソッドの引数・DestinationにCellsプロパティが単独で使われるということは、あり得ません。Rangeプロパティの引数にCellsプロパティを指定する形で使われます。

AutoFillメソッドの引数指定にCellsプロパティを利用して縦方向にオートフィルするサンプルマクロ

縦方向のオートフィルするマクロもご紹介しておきます。

以下のマクロを実行すると、A1セルに「January」と入力されたあとに、A12セルまで、
  February
  March
  April
のように「December」までの連続データがオートフィルされます。

Sub AutoFillメソッドとCellsプロパティの組み合わせ_縦方向()
 Range("A1").Value = "January"
 Range("A1").AutoFill _
   Destination:=Range(Cells(1, 1), Cells(12, 1))
End Sub

先にご紹介したマクロで、
   Destination:=Range(Cells(1, 1), Cells(1, 12))
となっていた部分が、このマクロでは、
   Destination:=Range(Cells(1, 1), Cells(12, 1))
になっています。

Rangeオブジェクトの第2引数に指定されたCellsプロパティが「Cells(12, 1)」と12行目・1列目のセル(すなわちA12セル)を表す指定になっているので、A1:A12の縦方向にオートフィルが行われます。

Rangeオブジェクトの引数にCellsプロパティを使ったオブジェクト式に慣れていない方は、
  Sub samp()
    Range(Cells(1, 1), Cells(12, 12)).Selsct
  End Sub
というマクロで、Cellsプロパティの引数の数字を変更したときに、どのセルが選択されるかを確認しておきましょう。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » Cellsプロパティ » AutoFillの引数DestinationをCellsで指定

「Cellsプロパティ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.