本記事は、Excel C# Script入門講座の1記事です。
セルの挿入(範囲・行・列)
セルの挿入にはRangeオブジェクトのInsertメソッドを使用します。
第1引数により、挿入後のセルのシフト方向を指定することができます。また、第2引数により、挿入後のセルに適用する書式設定をどの方向にあるセルからコピーするかを指定することができます。
Insertメソッドの構文
Insertメソッドは2つの引数をとることができます。この2つの引数は、いずれも省略可能です。
(Rangeオブジェクト).Insert(Shift, CopyOrigin)
Insertメソッドの引数
引数名 | 必須 / オプション | 内容 |
---|---|---|
Shift | 省略可能 | セルをシフトする方向を指定します。 |
CopyOrigin | 省略可能 | コピー元を指定します。 |
Shiftについて
使用できる定数は、XlInsertShiftDirection クラスの xlShiftToRight または xlShiftDown です。
定数の指定により、挿入後のセルのシフト方向を指定することが出来ます。ExcelCSXにおいては、定数はそのままの記載では呼び出せないため、かわりに対応する数値(各列挙体に割り当てられた数値)を指定して下さい。
引数に指定する定数 | enum値 | 内容 |
---|---|---|
xlShiftToRight | -4161 | 右方向にシフト |
xlShiftDown | -4121 | 下方向にシフト |
なお、この引数を省略すると、セル範囲の形に応じてシフト方向が自動的に決定されます。
引数を指定しない場合、
- 行数 <= 列数の場合は挿入後、下方向にシフトし
- 行数 > 列数の場合は挿入後、右方向にシフトします。
セルの行または列を選択範囲とする場合、
- 行の場合は挿入後、下方向にシフトし、
- 列の場合は挿入後、右方向にシフトします。
CopyOriginについて
使用できる定数は、XlInsertFormatOriginクラスのxlFormatFromLeftOrAboveまたはxlFormatFromRightOrBelowです。
定数の指定により、挿入したセルの書式をどのセルからコピーするかの方法を指定できます。
引数に指定する定数 | enum値 | 内容 |
---|---|---|
xlFormatFromLeftOrAbove | 0 | 左または上と同じ書式を適用 |
xlFormatFromRightOrBelow | 1 | 右または下と同じ書式を適用 |
サンプルコード
var activeSheet = Excel.ActiveWorkbook.ActiveSheet; //アクティブなシートのセルB2~C2の範囲にセルを挿入 //(行数 = 列数なので下方向にシフト) activeSheet.Range("B2:C2").Insert();
var activeSheet = Excel.ActiveWorkbook.ActiveSheet; //アクティブなシートのセルB2~C5の範囲にセルを挿入 //(行数 > 列数なので右方向にシフト) activeSheet.Range("B2:C5").Insert();