MESCIUS SPREAD for Windows Forms 17.0J
データを保持する行と列

シートで、データを含む最後の行インデックスおよび列インデックスを取得するには、以下のメソッドを使用します。

シートで、データを含む行数および列数を取得するには、以下のプロパティを使用します。

ソース範囲を保持する行/列

シートで、指定範囲内の最後の行インデックスと最後の列インデックスを返すには、IRange.End メソッドを使用します。このメソッドは、 方向を指定するdirection 列挙型と、非表示の行と列を含めるかどうかを指定する includeHidden パラメートの 2 つのパラメータを受け入れます。

次のサンプルコードは、指定されたソース範囲の左方向の最後のセルを返します。

C#
コードのコピー
// IRange.End(Direction.Left)
IWorksheet TestActiveSheet = fpSpread1.AsWorkbook().ActiveSheet;
TestActiveSheet.Cells["A1"].Value = 1;
TestActiveSheet.Cells["C1:F1"].Value = 1;
TestActiveSheet.Columns[1].Hidden = true;
TestActiveSheet.Columns[5].Hidden = true;
// ソース範囲の左側にデータがありません
Debug.WriteLine(TestActiveSheet.Cells["B5"].End(Direction.Left, false).Address());  //または、A5を返します
// データ範囲内のソース範囲
Debug.WriteLine(TestActiveSheet.Cells["D1"].End(Direction.Left, false).Address());  //A1を返します
Debug.WriteLine(TestActiveSheet.Cells["D1"].End(Direction.Left, true).Address());  //C1を返します
// ソース範囲の左側にデータがあります
Debug.WriteLine(TestActiveSheet.Cells["I1"].End(Direction.Left, false).Address());  //E1を返します
Debug.WriteLine(TestActiveSheet.Cells["I1"].End(Direction.Left, true).Address());  //F1を返します

Visual Basic
コードのコピー
' IRange.End(Direction.Left)
Dim TestActiveSheet As IWorksheet = fpSpread1.AsWorkbook().ActiveSheet
TestActiveSheet.Cells("A1").Value = 1
TestActiveSheet.Cells("C1:F1").Value = 1
TestActiveSheet.Columns(1).Hidden = True
TestActiveSheet.Columns(5).Hidden = True

' ソース範囲の左側にデータがありません
Debug.WriteLine(TestActiveSheet.Cells("B5").End(Direction.Left, False).Address()) 'または、A5を返します

' データ範囲内のソース範囲
Debug.WriteLine(TestActiveSheet.Cells("D1").End(Direction.Left, False).Address()) 'A1を返します
Debug.WriteLine(TestActiveSheet.Cells("D1").End(Direction.Left, True).Address()) 'C1を返します

' ソース範囲の左側にデータがあります
Debug.WriteLine(TestActiveSheet.Cells("I1").End(Direction.Left, False).Address()) 'E1を返します
Debug.WriteLine(TestActiveSheet.Cells("I1").End(Direction.Left, True).Address()) 'F1を返します

次のサンプルコードは、指定されたソース範囲の右方向の最後のセルを返します。

C#
コードのコピー
// IRange.End(Direction.Right)
IWorksheet TestActiveSheet = TestWorkBook.ActiveSheet;
TestActiveSheet.Cells["C1:F1"].Value = 1;
TestActiveSheet.Cells["H1"].Value = 1;
TestActiveSheet.Columns[2].Hidden = true;
TestActiveSheet.Columns[6].Hidden = true;
// ソース範囲の右側にデータがありません
Debug.WriteLine(TestActiveSheet.Cells["B5"].End(Direction.Right, false).Address());  //または、SF5を返します
// データ範囲内のソース範囲
Debug.WriteLine(TestActiveSheet.Cells["D1"].End(Direction.Right, false).Address());  //H1を返します
Debug.WriteLine(TestActiveSheet.Cells["D1"].End(Direction.Right, true).Address());  //F1を返します
//ソース範囲の上側にデータがあります
Debug.WriteLine(TestActiveSheet.Cells["A1"].End(Direction.Right, false).Address());  //D1を返します
Debug.WriteLine(TestActiveSheet.Cells["A1"].End(Direction.Right, true).Address());  //C1を返します

Visual Basic
コードのコピー
' IRange.End(Direction.Right)
Dim TestActiveSheet As IWorksheet = TestWorkBook.ActiveSheet
TestActiveSheet.Cells("C1:F1").Value = 1
TestActiveSheet.Cells("H1").Value = 1
TestActiveSheet.Columns(2).Hidden = True
TestActiveSheet.Columns(6).Hidden = True
' ソース範囲の右側にデータがありません
Debug.WriteLine(TestActiveSheet.Cells("B5").End(Direction.Right, False).Address()) 'または、SF5を返します
' データ範囲内のソース範囲
Debug.WriteLine(TestActiveSheet.Cells("D1").End(Direction.Right, False).Address()) 'H1を返します
Debug.WriteLine(TestActiveSheet.Cells("D1").End(Direction.Right, True).Address()) 'F1を返します
' ソース範囲の上側にデータがあります
Debug.WriteLine(TestActiveSheet.Cells("A1").End(Direction.Right, False).Address()) 'D1を返します
Debug.WriteLine(TestActiveSheet.Cells("A1").End(Direction.Right, True).Address()) 'C1を返します

次のサンプルコードは、指定されたソース範囲の上方向の最後のセルを返します。

C#
コードのコピー
// IRange.End(Direction.Up)
IWorksheet TestActiveSheet = fpSpread1.AsWorkbook().ActiveSheet;
TestActiveSheet.Cells["C1"].Value = 1;
TestActiveSheet.Cells["C3:C6"].Value = 1;
TestActiveSheet.Rows[1].Hidden = true;
TestActiveSheet.Rows[5].Hidden = true;
// ソース範囲の上側にデータがありません
Debug.WriteLine(TestActiveSheet.Cells["B5"].End(Direction.Up, false).Address()); //または、B1を返します
// データ範囲内のソース範囲
Debug.WriteLine(TestActiveSheet.Cells["C4"].End(Direction.Up, false).Address());  //C1を返します
Debug.WriteLine(TestActiveSheet.Cells["C4"].End(Direction.Up, true).Address());  //C3を返します
// ソース範囲の上側にデータがあります
Debug.WriteLine(TestActiveSheet.Cells["C10"].End(Direction.Up, false).Address());  //C5を返します
Debug.WriteLine(TestActiveSheet.Cells["C10"].End(Direction.Up, true).Address());  //C6を返します

Visual Basic
コードのコピー
' IRange.End(Direction.Up)
Dim TestActiveSheet As IWorksheet = fpSpread1.AsWorkbook().ActiveSheet
TestActiveSheet.Cells("C1").Value = 1
TestActiveSheet.Cells("C3:C6").Value = 1
TestActiveSheet.Rows(1).Hidden = True
TestActiveSheet.Rows(5).Hidden = True
' ソース範囲の上側にデータがありません
Debug.WriteLine(TestActiveSheet.Cells("B5").End(Direction.Up, False).Address()) 'または、B1を返します
' データ範囲内のソース範囲
Debug.WriteLine(TestActiveSheet.Cells("C4").End(Direction.Up, False).Address()) 'C1を返します
Debug.WriteLine(TestActiveSheet.Cells("C4").End(Direction.Up, True).Address()) 'C3を返します
' ソース範囲の上側にデータがあります
Debug.WriteLine(TestActiveSheet.Cells("C10").End(Direction.Up, False).Address()) 'C5を返します
Debug.WriteLine(TestActiveSheet.Cells("C10").End(Direction.Up, True).Address()) 'C6を返します

次のサンプルコードは、指定されたソース範囲の下方向の最後のセルを返します。

C#
コードのコピー
// IRange.End(Direction.Down)
IWorksheet TestActiveSheet = TestWorkBook.ActiveSheet;
TestActiveSheet.Cells["C3:C6"].Value = 1;
TestActiveSheet.Cells["C8"].Value = 1;
TestActiveSheet.Rows[2].Hidden = true;
TestActiveSheet.Rows[6].Hidden = true;
// ソース範囲の下側にデータがありません
Debug.WriteLine(TestActiveSheet.Cells["B5"].End(Direction.Down, false).Address());  //または、B500を返します
// データ範囲内のソース範囲
Debug.WriteLine(TestActiveSheet.Cells["C4"].End(Direction.Down, false).Address());  //C8を返します
Debug.WriteLine(TestActiveSheet.Cells["C4"].End(Direction.Down, true).Address());  //C6を返します
// ソース範囲の下側にデータがあります
Debug.WriteLine(TestActiveSheet.Cells["C1"].End(Direction.Down, false).Address());  //C4を返します
Debug.WriteLine(TestActiveSheet.Cells["C1"].End(Direction.Down, true).Address());  //C3を返します

Visual Basic
コードのコピー
' IRange.End(Direction.Down)
Dim TestActiveSheet As IWorksheet = TestWorkBook.ActiveSheet
TestActiveSheet.Cells("C3:C6").Value = 1
TestActiveSheet.Cells("C8").Value = 1
TestActiveSheet.Rows(2).Hidden = True
TestActiveSheet.Rows(6).Hidden = True
' ソース範囲の下側にデータがありません
Debug.WriteLine(TestActiveSheet.Cells("B5").End(Direction.Down, False).Address()) 'または、B500を返します
' データ範囲内のソース範囲
Debug.WriteLine(TestActiveSheet.Cells("C4").End(Direction.Down, False).Address()) 'C8を返します
Debug.WriteLine(TestActiveSheet.Cells("C4").End(Direction.Down, True).Address()) 'C6を返します
' ソース範囲の下側にデータがあります
Debug.WriteLine(TestActiveSheet.Cells("C1").End(Direction.Down, False).Address()) 'C4を返します
Debug.WriteLine(TestActiveSheet.Cells("C1").End(Direction.Down, True).Address()) 'C3を返します
IRange.Endメソッドは、ソース範囲内の最初のセルを返します。
参照

 

 


© MESCIUS inc. All rights reserved.