【VBA】(Fillメソッド)規則性のあるデータを埋め込む

2022年3月23日

フィル機能と言えば、

既に入力されている値や数式を
隣接する範囲にデータを埋め込む(コピーする)機能

です。数値などは単に複写されるだけで、連続するデータを埋め込む機能ではありません。※【「連続するデータ」、「年月日」のような変化する値をセルに埋め込む】のは ” オートフィル機能 ” です。

セル右下に出てくるポチ” 部分を引き延ばす…
けれども、値や数式はそのままコピーされる機能ですね。

VBA_FIll_4
Excel編集をしていてよく見かけるセル右下隅の「+」です

それでは例題を交えてVBAサンプルコードを記載します。
少数のセルデータを埋めるのであれば、手動でやる方が良いと思いますが、
繰り返し莫大な量を処理するのであれば、VBA活用も一考の余地ありです。
 

広告

Fillメソッドって?

このメソッドの構成は以下の通りです。

[セル] . FillUp/Down/Right/Left

「[セル]」の箇所にはRangeオブジェクトが入り、もともとセルにあった値や数式が入力されている部分を含んだ、データを埋め込みたい範囲を記します。
ここでは例題として、

・セル【C3】に値があり、【C7】までデータを埋めたい
・セル【D3】に数式があり、【D7】までデータを埋めたい

の2つで説明していこうと思います。
それぞれ7行目までデータを埋め込みたい場合の例です。
 

■データを複写コピーするだけの場合

VBA_FIll_1
【C3】の値 “鈴木一郎” を7行目の【C7】迄コピーする場合
Range("C3:C7").FillDown

↑の画面のように、【C3】にあった ”鈴木一郎” の文字列を下部に引き延ばすだけなら上記のソースコードです。最も基礎的な作業ですね。
 

■数式をコピーする場合

VBA_FIll_3
【D3】に入力されている数式 を7行目の【D7】迄コピーする場合
Range("D3:D7").FillDown

こちらも基本的な作業の一つです。上の文字列を複写するモノとコードは変わりまりません。数式の場合は、相対参照はもちろん(その範囲が)変化します。
 

色んな方向へデータを展開

VBA_FIll_2

上の例題では、下方向にデータを複写する場合でしたが、
データを埋め込みたい方向によって
コードの書き方は以下のように変化します。

[FillUp] …方向にデータを引き伸ばしたい場合
[FillDown] …方向にデータを引き伸ばしたい場合
[FillRight] …方向にデータを引き伸ばしたい場合
[FillLeft] …方向にデータを引き伸ばしたい場合

  '上方向へ
Range("C3:C7").FillUp

  '下方向へ
Range("C3:C7").FillDown

  '右方向へ
Range("C3:C7").FillRight

  '左方向へ
Range("C3:C7").FillLeft

以上になります。
このFillメソッドは、それほど無理なく理解できる内容なのかと思います。
 

広告