SPREAD for WPF 3.0J - GcSpreadGrid
セルの検索
GrapeCity SPREAD for WPF 3.0J > 開発者ガイド > セル > セルの検索

GcSpreadGridでは、データを簡単にすばやく見つけるための検索機能を提供しています。

コードを使用してデータを検索する

特定のセル範囲にあるセルのテキスト、タグ、あるいは数式から指定の文字列を検索することができます。検索に使用する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)

[検索] ダイアログ ボックスを開く

[検索] ダイアログ ボックスを開くには、まずGcSpreadGridクラスのCanUserShowSearchDialogプロパティをTrueに設定し、キーボードショートカット「Ctrl + F」を使用して次の画像に示すようなダイアログボックスを開くことができます。ダイアログボックスにある[検索する文字列]ボックスに検索対象のテキストを入力して、キーワードを検索できます。

[検索] ダイアログにある[オプション]ボタンを使用して、他の詳細検索のオプションから選択できます。このオプションは、特定の要件に基づいてカスタム検索を行う場合に役に立ちます。

小文字と大文字の区別、文字列の完全一致の検索、ワイルドカード文字の使用、タグ、テキスト、または数式などさまざまな組み込みオプションを設定して、詳細的な検索を行います。次の画像に示すように、[検索]ダイアログで1つ以上のオプションを選択できます。

次のサンプルコードは、検索ダイアログボックスを表示します。

C#
コードのコピー
//検索ダイアログボックスを表示します。
GcSpreadGrid.CanUserShowSearchDialog = true;
GcSpreadGrid.SearchDialog.Show();
VB
コードのコピー
'検索ダイアログボックスを表示します。
GcSpreadGrid.CanUserShowSearchDialog = true
GcSpreadGrid.SearchDialog.Show()
関連トピック