黙々とC#

"In a mad world of VBA, only the mad are sane" 『VBAという名の狂った世界で狂っているというのなら私の気は確かだ』

セル範囲の指定

本記事は、Excel C# Script入門講座の1記事です。

セル範囲の指定

セル範囲(複数のセル)を指定する方法には、前回説明したようにRangeプロパティを使用する方法とCellsプロパティを使用する方法とがあります。 RangeプロパティとCellsプロパティはいずれも指定したセル (Range オブジェクト)を返します。

セル範囲を指定する方法は2つあり、1つは"A1","E7"というように、左上端と右下端のセルをカンマ(,)で区切って文字列で指定する方法と、 "A1:E7"といったようにセミコロン(:)で区切って2つのセルを指定する方法とがあります。

以下の例では、Rangeプロパティを使用し、A1からE7までのセル範囲を示すRangeオブジェクトを取得し、Valueプロパティに値をセットしています。

Excel.Range("A1","E7").Value = "no more VBA";

なお、セル範囲のRangeオブジェクトのValueに値をセットすると、セル範囲に含まれるセル全てに同じ値がセットされます。

f:id:d_ymkw:20160713190654p:plain

Cellsプロパティを使用してセル範囲を取得するには行番号と列番号を指定し、Rangeプロパティを併用して セル範囲を取得します。

以下の例では、RangeプロパティとCellsプロパティを併用してしRangeオブジェクトを取得し、 Valueプロパティに値をセットしています。

Excel.Range("A1:E7").Value="no more VBA";

なお、Rangeプロパティでセル範囲を指定する方法の1つ目において、上記例では、"A1","E7"という文字列でセルを指定しましたが、Cellsプロパティを用いてRangeオブジェクトでセルを指定することも可能です。

var activeSheet = Excel.ActiveWorkbook.ActiveSheet;
var cellLeftTop = activeSheet.Cells(1,1);
var cellRightBottom = activeSheet.Cells(7,5);
Excel.Range("A1:E7").Value="no more VBA";