マウスドラッグでの連続データ(オートフィル)

セルに入力したデータをマウスでドラッグすると簡単に連番データなどが作成できます。

この連続データ作成機能を「オートフィル」と言います。

Excelでは「ホームタブ→編集→フィル」で操作できます。

同じことをVBAでも行うことができます。

AutoFillメソッド

連続データを作成するにはRangeオブジェクトのAutoFillメソッドを利用します。

引数にデータ書き込み先のRangeオブジェクトと、連続データの種類を設定します。

構文

expression:開始セル

連続データの基点となるセル範囲を指定します。

Destination:開始から終点までのセル範囲

基点セル範囲からオートフィルでの終点となるデータ書き込み先のセルまでの範囲(基点から終点の範囲)をRangeオブジェクトで指定します。

Type:連続データの種類

連続するデータの種類をXlAutoFillType列挙型の定数で指定します。

省略可能です。省略した場合はデータの内容に合わせて自動的に種類が設定されます。

定数 設定内容 設定例
xlFillDefault(既定値) 0 標準オートフィル セルの状態で自動設定される
xlFillSeries 2 連続データ 1, 5, 9, 13, 17(1, 5を基点にして4ずつ増加)
xlFillCopy 1 コピー 1, 1, 1, 1, 1(1を基点にコピー)
xlFillFormats 3 書式のみコピー 基点セルの書式のみをコピー
xlFillValues 4 書式なしコピー 基点セルの値のみをコピー
xlFillYears 8 年単位 2017/1/1, 2018/1/1, 2019/1/1
xlFillMonths 7 月単位 2017/1/1, 2017/2/1, 2017/3/1
xlFillDays 5 日単位 2017/1/1, 2017/1/2, 2017/1/3
xlFillWeekdays 6 平日単位 2017/8/31, 2017/9/1, 2017/9/4(9/2=土曜、9/3=日曜は未出力)
xlLinearTread 9 加算 1, 2, 3, 4, 5(1を基点にして1ずつ増加)
xlGrowthTrend 10 乗算 1, 2, 4, 8, 16(1, 2を基点にして2乗を算出)
xlFlashFill 11 前回入力操作(Excel2013以降) A列にメールアドレスがあり、A1セルに「a.b@test.com」とあり、B1セルで「a b」と入力した状態で、B2セル以降もA列を参照してB1セル同様に連続データを作成します

 

サンプルコード

各Typeの設定例です。下の画像が実行前と実行後になります。

実行前です。

実行後です。それぞれ5つずつ連続データを作成しています。