AutoFill【オートフィル】メソッド
Excelでセルの連続データを作成するオートフィル機能をVBAで利用するには、Range【レンジ】オブジェクトのAutoFill【オートフィル】メソッドを使用します。
AutoFill【オートフィル】メソッドの書式と設定値(引数)の説明
[]内は省略可能です。
オブジェクト.AutoFill( Destination[,Type ])
- オブジェクト(必須)
連続データやコピーの基準となる値が入力されているセルやセル範囲をRange【レンジ】オブジェクトで指定します。 - Destination【デスティネーション】(必須)
オートフィルの書き込み先のセル範囲をRange【レンジ】オブジェクトで指定します。※このとき必ずオブジェクトで指定した基準となるセルを含めます。 - Type【タイプ】(省略可)
オートフィルのタイプをxlAutoFillType列挙型の定数または値で指定します。xlAutoFillType列挙型 定数 値 内容 xlFillDefault【フィルデフォルト】 0 標準のオートフィル(既定値) xlFillCopy【フィルコピー】 1 コピー xlFillSeries【フィルシリーズ】 2 連続データ xlFillFormats【フィルフォーマッツ】 3 書式のみコピー xlFillValues【フィルバリュー】 4 値のみコピー xlFillDays【フィルデイズ】 5 曜日単位の連続データ xlFillWeekdays【フィルウィークデイズ】 6 平日(土日を除く)の連続データ xlFillMonths【フィルマンス】 7 月単位の連続データ xlFillYears【フィルイヤーズ】 8 年単位の連続データ xlLinearTrend【ライナートレンド】 9 加算 xlGrowthTrend【グロウストレンド】 10 乗算 xlFlashFill【フラッシュフィル】 11 フラッシュフィル
AutoFill【オートフィル】メソッドで日付の連続データをセルに設定するコードと解説
Sub オートフィル() With Range("A1") .NumberFormatLocal = "mm/dd(aaa)" .Value = "1/1" .AutoFill Range("A1:L1"), xlFillMonths end With Range("A1:L1").AutoFill Range("A1:L31"), xlFillDays End Sub
A1セルをWith【ウィズ】ステートメントで指定します。
3行目【.NumberFormatLocal = “mm/dd(aaa)”】
With【ウィズ】ステートメントで指定したA1セルにセルの表示形式を設定するRange【レンジ】オブジェクトのNumberFormatLocal【ナンバーフォーマットローカル】プロパティを使用して「月/日(曜日)」の表示形式を設定します。
4行目【.Value = “1/1″】
With【ウィズ】ステートメントで指定したA1セルに値を設定するRange【レンジ】オブジェクトのValue【バリュー】プロパティを使用して文字列の「1/1」を設定します。
5行目【.AutoFill Range(“A1:L1”), xlFillMonths】
With【ウィズ】ステートメントで指定したA1セルを基準としてAutoFill【オートフィル】メソッドを実行します。書き込み先を表す引数Destination【デスティネーション】にはA1セルからL1セルを指定し、オートフィルのタイプを指定するType【タイプ】には月単位の連続データを表す定数を指定して1行目のセルに1月から12月の連続データを作成します。
7行目【Range(“A1:L1”).AutoFill Range(“A1:L31”), xlFillDays】
6行目で作成した月単位の連続データが設定されているA1セルからL1セルのセル範囲にAutoFill【オートフィル】メソッドを実行します。書き込み先を表す引数Destination【デスティネーション】にはA1セルからL31セルを指定し、オートフィルのタイプを指定するType【タイプ】には日単位の連続データを表す定数を指定して日付の連続データを作成します。
実行結果
AutoFill【オートフィル】メソッドを使用したコード例リンク
データの最終行・列にSUM関数で合計を挿入する
日付データを年・月・日で数値または文字列として分割する
以上で、連続データを作成するAutoFillメソッドについての解説を終了します。ありがとうございました。