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 になる)を取得できます。
次のコードは、現在の選択範囲にあるセルをループ処理します。※SelChange イベントに下記コードを記載します。
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]);