GrapeCity SPREAD for WPF 2.0J
セルの検索

特定のセル範囲にあるセルのテキスト、タグ、あるいは数式から指定の文字列を検索することができます。検索に使用するSearch メソッドには複数のオーバーロードがあり、それぞれのメソッドパラメータに検索方法や検索範囲など、検索オプションを指定することができます。

検索に使用できるオプションは以下のとおりです。

検索オプション 説明
検索文字列 検索キーワードとなる文字列です。
検索方法 SearchFlags 列挙体を使用し、検索の範囲のほか、完全一致や大文字小文字の区別およびワイルドカードを有効にするかどうかを指定します。
検索方向 SearchOrder 列挙体を使用し、検索の方向を列優先か行優先かを指定します。
検索対象 SearchFoundFlags 列挙体を使用し、検索の対象としてセルのテキスト、タグ、数式を含めるかどうかを指定します。
検索領域 SpreadArea 列挙体を使用し、検索する領域を行・列ヘッダ領域あるいはセル領域に限定するかどうかを指定します。
検索範囲のインデックス 検索を開始する行および列、終了する行および列のインデックスを指定します。

セル領域の検索範囲は、検索範囲のインデックスを指定しますが、検索方法を示すオプションにSearchFlags.BlockRange が指定されているかどうかと 検索方向を示すSearchOrder 列挙体の設定により適用範囲が異なります。

以下は、検索を開始する行インデックス1、列インデックス1、検索を終了する行インデックス5、列インデックス3を指定した場合に検索範囲および検索方向の例です。

SearchFlagsの設定 SearchOrderの設定 検索範囲と検索方向
BlockRangeあり ZOrder
BlockRangeなし ZOrder
BlockRangeあり NOrder
BlockRangeなし NOrder

検索結果は、戻り値のほか以下のメソッドパラメータに参照引数として指定した変数に設定されるから取得できます。

検索オプション 説明
検索結果の行インデックス 検索文字列が見つかった行インデックスの参照を指定します。見つからなかった場合は-1を返します。
検索結果の列インデックス 検索文字列が見つかった列インデックスの参照を指定します。見つからなかった場合は-1を返します。
検索された文字列 検索に使用された文字列の参照を指定します。

サンプルコード

次のサンプルコードは、"ABC"という文字列を検索する方法を示します。

C#
コードのコピー
int row;
int col;
string foundstring;

gcSpreadGrid1.Search("ABC",SearchFlags.ExactMatch, SearchOrder.NOrder, SearchFoundFlags.CellText, out row, out col);
Console.WriteLine("列 : {0}, 行 : {1} で見つかりました。", row, col);

SearchFoundFlags found = gcSpreadGrid1.Search("ABC", SearchFlags.IgnoreCase | SearchFlags.BlockRange, SearchOrder.NOrder, SearchFoundFlags.CellText | SearchFoundFlags.CellFormula, SpreadArea.Cells, 2, 2, 10, 10, out row, out col, out foundstring);
Console.WriteLine("列: {0}, 行: {1} の{2}で見つかりました。", row, col, found);
Visual Basic
コードのコピー
Dim row As Integer
Dim col As Integer
Dim foundstring As String

GcSpreadGrid1.Search("ABC", SearchFlags.ExactMatch, SearchOrder.NOrder, SearchFoundFlags.CellText, row, col)
Console.WriteLine("列 : {0}, 行 : {1} で見つかりました。", row, col)

Dim found As SearchFoundFlags
found = GcSpreadGrid1.Search("ABC", SearchFlags.IgnoreCase Or SearchFlags.BlockRange, SearchOrder.NOrder, SearchFoundFlags.CellText Or SearchFoundFlags.CellFormula, SpreadArea.Cells, 2, 2, 10, 10, row, col, foundstring)
Console.WriteLine("列: {0}, 行: {1} の{2}で見つかりました。", row, col, found)
関連トピック

 

 


Copyright © 2012 GrapeCity inc. All rights reserved.