【VBA】(Fillメソッド)規則性のあるデータを埋め込む
フィル機能と言えば、
既に入力されている値や数式を
隣接する範囲にデータを埋め込む(コピーする)機能
です。数値などは単に複写されるだけで、連続するデータを埋め込む機能ではありません。※【「連続するデータ」、「年月日」のような変化する値をセルに埋め込む】のは ” オートフィル機能 ” です。
“セル右下に出てくるポチ” 部分を引き延ばす…
けれども、値や数式はそのままコピーされる機能ですね。
それでは例題を交えてVBAサンプルコードを記載します。
少数のセルデータを埋めるのであれば、手動でやる方が良いと思いますが、
繰り返し莫大な量を処理するのであれば、VBA活用も一考の余地ありです。
Fillメソッドって?
このメソッドの構成は以下の通りです。
[セル] . FillUp/Down/Right/Left
「[セル]」の箇所にはRangeオブジェクトが入り、もともとセルにあった値や数式が入力されている部分を含んだ、データを埋め込みたい範囲を記します。
ここでは例題として、
・セル【C3】に値があり、【C7】までデータを埋めたい
・セル【D3】に数式があり、【D7】までデータを埋めたい
の2つで説明していこうと思います。
それぞれ7行目までデータを埋め込みたい場合の例です。
■データを複写コピーするだけの場合
Range("C3:C7").FillDown
↑の画面のように、【C3】にあった ”鈴木一郎” の文字列を下部に引き延ばすだけなら上記のソースコードです。最も基礎的な作業ですね。
■数式をコピーする場合
Range("D3:D7").FillDown
こちらも基本的な作業の一つです。上の文字列を複写するモノとコードは変わりまりません。数式の場合は、相対参照はもちろん(その範囲が)変化します。
色んな方向へデータを展開
上の例題では、下方向にデータを複写する場合でしたが、
データを埋め込みたい方向によって
コードの書き方は以下のように変化します。
[FillUp] …上方向にデータを引き伸ばしたい場合
[FillDown] …下方向にデータを引き伸ばしたい場合
[FillRight] …右方向にデータを引き伸ばしたい場合
[FillLeft] …左方向にデータを引き伸ばしたい場合
'上方向へ
Range("C3:C7").FillUp
'下方向へ
Range("C3:C7").FillDown
'右方向へ
Range("C3:C7").FillRight
'左方向へ
Range("C3:C7").FillLeft
以上になります。
このFillメソッドは、それほど無理なく理解できる内容なのかと思います。