Excel VBA セル範囲に連続データを作成する DataSeries メソッド

スポンサーリンク
スポンサーリンク

DataSeries【データシリーズ】 メソッド

指定したセル範囲に、連続データを作成するには
セルを表す
Range【レンジ】オブジェクトの
DataSeries【データシリーズ】 メソッドを使用します。

DataSeries【データシリーズ】 メソッドの書式

[]内は省略可能です。
オブジェクト.DataSeries( Rowcol, Type, Date, Step, Stop, Trend )


  • オブジェクト(必須)
    連続データを作成するセル範囲を
    Rangeオブジェクトで指定します。
  • Rowcol【ロウカラム】(省略可能)
    連続データの方向を以下の定数で指定します。

    定数内容
    xlRows行方向
    xlColumns列方向

    省略した場合は、Ranegオブジェクトで指定した範囲が使用されます。

  • Type【タイプ】(省略可)
    連続データの種類を
    XlDataSeriesType列挙型の定数で指定します。

    XlDataSeriesType列挙型
    定数内容
    xlDataSeriesLinear-4132加算と仮定して値を指定します
    例えば、’1, 2′ の場合は、’3, 4, 5′ となります
    xlGrowth2乗算と仮定して値を指定します
    例えば、、’1, 2′ の場合は、’4, 8, 16′ となります
    xlChronological3日付の値を入力します
    xlAutoFill4オートフィル設定に従って
    連続データを入力します
  • Date【デイト】(省略可)
    引数 Type が xlChronological(日付) のとき
    日付の増加単位をXlDataSeriesDate列挙型の定数で指定します。

    XlDataSeriesDate列挙型
    定数内容
    xlDay1
    xlWeekday2平日
    xlMonth3
    xlYear4
  • Step【ステップ】(省略可)
    連続データの加算値を設定します。既定値は 1 です。
  • Stop【ストップ】(省略可)
    連続データの停止位置をRangeオブジェクトで設定します。
    省略した場合は対象セル範囲の終端まで繰り返されます。
  • Trend【トレンド】(省略可)
    対象セル範囲に入力されている値を元に
    予測した値を入力する方法をブール型の値で指定します。

    設定値内容
    True直線(加算)または指数曲線(乗算)に当てはめて
    予測した結果で残りのセルを埋めます
    False標準の連続データを作成します。

    省略した場合はFalseです。

データを一時的に並べ替えをして元に戻す方法

他の人が管理しているブックに
どのような意図かわからない順番で並んでいる表がある場合
一時的に他の順番でデータを並べ替えて内容を確認したあと
元の順番に戻したい場合があると思います。

このような場合は、一時的に並べ替え用の列を作成し
そこに元の順番で連番を振っておきます。
目的に応じて並べ替え作業が終わったら
連番を作成した列で並べ替えれば元の順番に戻ります。

データ範囲の最後の列の次の列に連番を作成するコード例

Sub 連番作成()
Dim データ範囲 As Range
Set データ範囲 = Range("A1").CurrentRegion
With データ範囲.Columns(1).Offset(0, データ範囲.Columns.Count)
               .Cells(1).Value = 0
               .Cells(2).Value = 1
               .DataSeries Type:=xlDataSeriesLinear
               .Cells(1).Value = "元の順番"
End With
End Sub

コードの解説

2行目
【Dim データ範囲 As Range】

データの入力されている表範囲を格納する
変数「データ範囲」を
オブジェクト型(Range)で宣言します。


3行目
【Set データ範囲 = Range(“A1”).CurrentRegion】

Range【レンジ】オブジェクトの
CurrentRegion【カレントリージョン】プロパティ使用して
A1セルから始まるデータ範囲を取得して
オブジェクト変数「データ範囲」に
Setキーワードを使用して代入します。


4行目
【With データ範囲.Columns(1).Offset(0, データ範囲.Columns.Count)】

データ範囲のColumns【カラムズ】プロパティの引数に1を設定して
データ範囲の1列目を指定します。
指定したデータ範囲の1列目を基準として
Offset【オフセット】プロパティを使用して
引数の列方向の移動を
データ範囲の列の集まりを表す
Columns【カラムス】コレクションの
Count【カウント】プロパティを使用して
データ範囲の列数を取得して設定し
Withステートメントで指定します。
結果的にデータ範囲の最終列の次の列が参照されます。


5行目
【.Cells(1).Value = 0】

Withステートメントで指定した
データ範囲の最終列の次の列を
Cells【セルズ】プロパティで引数を1に設定し
その行の1行目のセルを参照して
Value【バリュー】プロパティを使用して
0を代入します。


6行目
【.Cells(2).Value = 1】

Withステートメントで指定した
データ範囲の最終列の次の列を
Cells【セルズ】プロパティで引数を2に設定し
その行の2行目のセルを参照して
Value【バリュー】プロパティを使用して
1を代入します。


7行目
【.DataSeries】

Withステートメントで指定した
データ範囲の最終列の次の列を
DataSeries【データシリーズ】メソッドを使用して
1行目のセルの値0と、2行目のセルの値1を基準に
連番を作成します。
連続データの種類を設定する
引数Typeには、加算データと仮定する
xlDataSeriesLinearを設定します。
その他の引数は既定値なので省略します。


8行目
【.Cells(1).Value = “元の順番”】

Withステートメントで指定した
データ範囲の最終列の次の列の
1行目のセル(5行目で0を代入したセル)に
Value【バリュー】プロパティを使用して
文字列を代入します。


実行結果


以上で
セル範囲に連続データを作成する DataSeries メソッド
についての解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク