NamedRange.Find メソッド
NamedRange コントロールで特定の情報を検索し、その情報が見つかった最初のセルを表す Microsoft.Office.Interop.Excel.Range オブジェクトを返します。
名前空間: Microsoft.Office.Tools.Excel
アセンブリ: Microsoft.Office.Tools.Excel (Microsoft.Office.Tools.Excel.dll 内)
構文
'宣言
Function Find ( _
What As Object, _
After As Object, _
LookIn As Object, _
LookAt As Object, _
SearchOrder As Object, _
SearchDirection As XlSearchDirection, _
MatchCase As Object, _
MatchByte As Object, _
SearchFormat As Object _
) As Range
Range Find(
Object What,
Object After,
Object LookIn,
Object LookAt,
Object SearchOrder,
XlSearchDirection SearchDirection,
Object MatchCase,
Object MatchByte,
Object SearchFormat
)
パラメーター
- What
型 : System.Object
検索するデータです。文字列、または Microsoft Office Excel の任意のデータ型を使用できます。
- After
型 : System.Object
検索位置を示すセルです。このセルの次から検索が開始されます。これは、ユーザー インターフェイスから検索を行う場合のアクティブ セルの位置に相当します。 After は範囲内の単一のセルである必要があります。検索はこのセルの次から開始されることに注意してください。指定したセル自体が検索されるのは、メソッドがラップしてそのセルに戻ってきたときです。この引数を指定しなかった場合、検索は範囲の左上隅のセルの後から開始されます。
- LookIn
型 : System.Object
情報の種類です。
- LookAt
型 : System.Object
XlLookAt 値 (xlWhole または xlPart) のどちらかです。
- SearchOrder
型 : System.Object
XlSearchOrder 値 (xlByRows または xlByColumns) のどちらかです。
- SearchDirection
型 : Microsoft.Office.Interop.Excel.XlSearchDirection
検索の方向です。
次のいずれかの XlSearchDirection 値です。
xlNext または xlPrevious。
- MatchCase
型 : System.Object
検索で大文字と小文字を区別する場合は true を指定します。既定値 false です。
- MatchByte
型 : System.Object
2 バイト言語サポートを選択またはインストールした場合のみ使用します。2 バイト文字を 2 バイト文字にのみ一致させる場合は true。2 バイト文字を、等価な 1 バイト文字に一致させる場合は false。
- SearchFormat
型 : System.Object
検索形式です。
戻り値
型 : Microsoft.Office.Interop.Excel.Range
情報が見つかった最初のセルを表す Microsoft.Office.Interop.Excel.Range オブジェクトを返します。
解説
このメソッドは、一致するものが見つからなかった場合には nullnull 参照 (Visual Basic では Nothing) を返します。
このメソッドは、選択またはアクティブ セルに影響を与えません。
LookIn、LookAt、SearchOrder、および MatchByte の各設定値は、このメソッドを使用するたびに保存されます。次回メソッドを呼び出すときに、これらの引数に値を指定しなかった場合は、保存されている値が使用されます。これらの引数を設定すると、[検索] ダイアログ ボックスの設定も変更されます。[検索] ダイアログ ボックスの設定を変更すると、引数を省略したときに使用される保存値も変更されます。この問題を避けるには、このメソッドを使用するたびに、これらの引数を明示的に設定します。
FindNext メソッドおよび FindPrevious メソッドを使用すると、検索を繰り返すことができます。
指定した検索範囲の末尾に達すると、検索範囲の先頭にラップします。このようなラップが発生したときに検索を停止するには、最初に見つかったセルのアドレスを保存しておき、それ以降に見つかった各セルのアドレスを、保存しておいたアドレスと比較します。
省略可能なパラメーター
省略可能なパラメーターについては、「Office ソリューションの省略可能なパラメーター」を参照してください。
例
次のコード例は、Find メソッドを使用して、NamedRange コントロール内で値 Seashell を持つ 1 番目のセルを検索します。次に、FindNext メソッドと FindPrevious メソッドを使用して値 Seashell を持つ次のセルを検索し、元のセルに戻ります。最後に、Cut メソッドを使用して値 Seashell を持つ 1 番目のセルの内容を切り取り、セル B1 に貼り付けます。
この例は、ドキュメント レベルのカスタマイズ用に作成されています。
Private Sub FindValue()
Me.Range("A1").Value2 = "Barnacle"
Me.Range("A2").Value2 = "Seashell"
Me.Range("A3").Value2 = "Star Fish"
Me.Range("A4").Value2 = "Seashell"
Me.Range("A5").Value2 = "Clam Shell"
Dim namedRange1 As Microsoft.Office.Tools.Excel.NamedRange _
= Me.Controls.AddNamedRange(Me.Range("A1", "A5"), _
"namedRange1")
' Find the first occurrence of "Seashell".
Dim Range1 As Excel.Range = namedRange1.Find("Seashell", , , _
Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns, _
Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext, _
False, False, )
' Find the next occurrence of "Seashell".
Range1 = namedRange1.FindNext(Range1)
' Return to the first occurrence of "Seashell".
Range1 = namedRange1.FindPrevious(Range1)
' Cut the range with the first "Seashell" and copy it to cell B1.
Dim namedRange2 As Microsoft.Office.Tools.Excel.NamedRange _
= Me.Controls.AddNamedRange(Range1, "namedRange2")
namedRange2.Cut(Me.Range("B1"))
End Sub
private void FindValue()
{
this.Range["A1"].Value2 = "Barnacle";
this.Range["A2"].Value2 = "Seashell";
this.Range["A3"].Value2 = "Star Fish";
this.Range["A4"].Value2 = "Seashell";
this.Range["A5"].Value2 = "Clam Shell";
Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
this.Controls.AddNamedRange(this.Range["A1", "A5"],
"namedRange1");
// Find the first occurrence of "Seashell".
Excel.Range Range1 = namedRange1.Find("Seashell",
Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns,
Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext,
false);
// Find the next occurrence of "Seashell".
Range1 = namedRange1.FindNext(Range1);
// Return to the first occurrence of "Seashell".
Range1 = namedRange1.FindPrevious(Range1);
// Cut the range with the first "Seashell" and copy it to cell B1.
Microsoft.Office.Tools.Excel.NamedRange namedRange2 =
this.Controls.AddNamedRange(Range1, "namedRange2");
namedRange2.Cut(this.Range["B1"]);
}
.NET Framework セキュリティ
- 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。