RowSelおよび ColSelプロパティを使用して、選択範囲を変更したり、現在選択されているセルを判定することができます。行には上から順に、列には左から順に0から番号が付けられます。
Rowおよび Colプロパティを設定すると、選択範囲が自動的に1つのセルに縮小され、 RowSelおよび ColSelプロパティがリセットされます。したがって、ブロック選択範囲を指定するには、 Rowおよび Colを設定してから、 RowSelおよび ColSelを設定する必要があります。または、 Select(CellRange,Boolean)メソッドを使用すると、1つのステートメントで範囲を選択できます。
範囲が選択されている場合、 Rowの値は、 RowSelより大きいことも小さいこともあります。また、 Colの値は、 ColSelより大きいことも小さいこともあります。これは、これらの範囲でループを実行する場合に不便です。このような場合は、 Selectionプロパティを使用して、正規化された CellRangeオブジェクト(r1 <= r2、c1 <= c2 になる)を取得できます。
次のコードは、現在の選択範囲にあるセルをループ処理します。
Dim rg As CellRange = flex.Selection For r As Integer = rg.r1 To rg.r2 For c As Integer = rg.c1 To rg.c2 Console.WriteLine("{0}行{1}列目:{2}", r, c, flex(r, c)) Next Next
CellRange rg = flex.Selection; for (int r = rg.r1; r <= rg.r2; r++) for (int c = rg.c1; c <= rg.c2; c++) Console.WriteLine("{0}行{1}列目:{2}", r, c, flex[r, c]);