FarPoint.Win.Spread アセンブリ > FarPoint.Win.Spread 名前空間 > FpSpread クラス > Search メソッド : Search(Int32,String,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Int32,Int32,Int32,Int32,Int32,Int32) メソッド |
'宣言
Public Overloads Function Search( _ ByVal sheetIndex As Integer, _ ByVal searchString As String, _ ByVal caseSensitive As Boolean, _ ByVal exactMatch As Boolean, _ ByVal alternateSearch As Boolean, _ ByVal useWildcards As Boolean, _ ByVal includeCellText As Boolean, _ ByVal includeNotes As Boolean, _ ByVal includeTags As Boolean, _ ByVal searchAsBlockRange As Boolean, _ ByVal startRowIndex As Integer, _ ByVal startColumnIndex As Integer, _ ByVal endRowIndex As Integer, _ ByVal endColumnIndex As Integer, _ ByRef foundRowIndex As Integer, _ ByRef foundColumnIndex As Integer _ ) As SearchFoundFlags
public SearchFoundFlags Search( int sheetIndex, string searchString, bool caseSensitive, bool exactMatch, bool alternateSearch, bool useWildcards, bool includeCellText, bool includeNotes, bool includeTags, bool searchAsBlockRange, int startRowIndex, int startColumnIndex, int endRowIndex, int endColumnIndex, ref int foundRowIndex, ref int foundColumnIndex )
また、foundRowIndex と foundColumnIndex は、文字列が見つかったセルの行インデックスおよび列インデックスを返します。
これは最近追加された検索メソッドで、検索文字列がセルノートやセルタグで見つかるケースに対応するため、テキスト文字列ではなくSearchFoundFlagを返します。必要に応じて、データセル、セルノート、またはセルタグを自由に組み合わせて検索することが可能です。検索はstartRowIndexとstartColumnIndexで指定されたセル位置からendRowIndexとendColumnIndexで指定されたセル位置にかけて、文字列の一致が見つかるまで続けられます。さらに、ブロック範囲を指定することで、検索する範囲(一番左の列、一番右の列、一番上の行、および一番下の行)を限定できます。
そのためには、searchAsBlockRangeをtrueに設定します。そうすると、開始インデックスと終了インデックスによって検索の範囲が定義されます。たとえば、開始列インデックスを5にすると、すべての行でインデックスが5より小さい列は検索されません。セルを検索対象として指定した場合、この検索メソッドは、そのセルのTextプロパティによって文字列として表現できるデータを含むすべてのセルを検索します。これには非表示のセルやロックされたセルも含まれます。
この検索メソッドは、書式付き文字列(セルのText)のみをチェックします。セルのValueはチェックしません。タグを検索対象として指定した場合は、Stringデータ型のタグのみが検索されます。
階層的なシートの場合、このメソッドは親シートのセルのみを検索します。子シートを検索するには、子シートごとに別々の検索を実行する必要があります。
searchAsBlockRangeは、範囲をセルのブロックとみなして、検索をその範囲内に限定します。開始インデックスが行0の列1、終了インデックスが行3の列3の場合は、列0と列4以降は検索されません。searchAsBlockRangeがtrueに設定されている場合、デフォルトの検索はまず左から右へ実行され、次に上から下へ実行されます。alternateSearchをtrueに設定すると、上から下へ検索された後、左から右へ検索されます。
searchAsBlockRangeがfalseの場合は、シート上の指定したセル以降のすべてのセル(範囲に含まれないセルを含む)が検索されます。
int x = 0; int y = 0; FarPoint.Win.Spread.SearchFoundFlags sff; sff = fpSpread1.Search(0, "test", false, false, false, false, true, false, false, true, 0, 1, 3, 3, ref x, ref y); listBox1.Items.Add(sff.ToString()); listBox1.Items.Add(x.ToString()); listBox1.Items.Add(y.ToString());
Dim x As Integer Dim y As Integer Dim z As Integer Dim sff As FarPoint.Win.Spread.SearchFoundFlags sff = FpSpread1.Search(0, "test", False, False, False, False, True, False, False, True, 0, 1, 3, 3, x, y) ListBox1.Items.Add(sff.ToString()) ListBox1.Items.Add(x) ListBox1.Items.Add(y)
FpSpread1.Sheets(0).Cells(0, 0).Text = "test" FpSpread1.Sheets(0).Cells(3, 0).Text = "test" FpSpread1.Sheets(0).Cells(4, 0).Text = "test" FpSpread1.Sheets(0).Cells(0, 1).Text = "test" FpSpread1.Sheets(0).Cells(3, 1).Text = "test" FpSpread1.Sheets(0).Cells(3, 2).Text = "test" Dim x As Integer Dim y As Integer Dim i As Integer Dim j As Integer i = 0 j = 0 For j = 0 To 5 i = 0 While x <> -1 Or i > 5 FpSpread1.Search(0, "test", False, False, False, False, True, False, False, True, i, j, 5, 5, x, y) ListBox1.Items.Add(x.ToString()) ListBox1.Items.Add(y.ToString()) i = x + 1 End While x = 0 i = x + 1 Next j
FpSpread1.Sheets(0).Cells(0, 0).Text = "test" FpSpread1.Sheets(0).Cells(3, 0).Text = "test" FpSpread1.Sheets(0).Cells(4, 0).Text = "test" FpSpread1.Sheets(0).Cells(0, 1).Text = "test" FpSpread1.Sheets(0).Cells(3, 1).Text = "test" FpSpread1.Sheets(0).Cells(3, 2).Text = "test" Dim x As Integer Dim y As Integer Dim i As Integer Dim j As Integer i = 0 j = 0 For j = 0 To 5 i = 0 While x <> -1 Or i > 5 FpSpread1.Search(0, "test", False, False, False, False, True, False, False, True, i, j, 5, 5, x, y) ListBox1.Items.Add(x.ToString()) ListBox1.Items.Add(y.ToString()) i = x + 1 End While x = 0 i = x + 1 Next j