Find メソッド
Office web コンポーネント Visual Basic リファレンス |
Find メソッド
指定された範囲から情報を検索し、目的の情報が見つかった最初のセルを表す Range オブジェクトを返します。検索条件に当てはまるセルが見つからなかった場合は、Nothing を返します。選択状態またはアクティブ セルへの影響はありません。
expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte)
expression Range オブジェクトを表すオブジェクト式を指定します。
What 必ず指定します。バリアント型 (Variant) の値を指定します。検索対象のデータを指定します。
After 省略可能です。バリアント型 (Variant) の値を指定します。ここで指定したセルの次のセルから検索が開始されます。このセルは、ユーザー インターフェイスから実行される検索が完了した時点のアクティブ セルの位置と一致します。検索はこのセルの次のセルから始まります。指定したセル自体の検索は、範囲全体の検索が終了してこのセルの位置に戻るまで行われません。この引数を省略すると、セル範囲の左上端のセルから検索が開始されます。
LookIn 省略可能です。使用できる定数は、XlFindLookIn クラスの定数のいずれかです。数式または表示された値を検索するかどうかを指定します。
使用できる定数は、次に示す FindLookIn クラスの定数のいずれかです。 |
xlFormulas |
xlValues |
LookAt 省略可能です。使用できる定数は、XlLookAt クラスの定数のいずれかです。この引数を xlWhole に設定すると、セルの内容全体が引数 What の内容と照合されます。
使用できる定数は、次に示す XlLookAt クラスの定数のいずれかです。 |
xlPart |
xlWhole |
SearchOrder 省略可能です。使用できる定数は、XlSearchOrder クラスの定数のいずれかです。列と行のいずれに沿って検索を行うかを指定します。
使用できる定数は、次に示す XlSearchOrder クラスの定数のいずれかです。 |
xlByColumns |
xlByRows |
SearchDirection 省略可能です。使用できる定数は、XlSearchDirection クラスの定数のいずれかです。検索の方向を指定します。
使用できる定数は、次に示す XlSearchDirection クラスの定数のいずれかです。 |
xlNext |
xlPrevious |
MatchCase 省略可能です。ブール型 (Boolean) の値を指定します。True を指定すると、検索で大文字と小文字が区別されます。既定値は False です。
MatchByte 省略可能です。バリアント型 (Variant) の値を指定します。この引数は、2 バイト (全角) 文字の言語サポートが選択またはインストールされている場合にのみ使用します。True を指定すると、検索で全角と半角が区別されます。区別しないようにするには、False を指定します。
使用例
次の使用例は、セル範囲 A1:F10 内で "Mike" が出現するすべてのセルを検索し、該当するセルを太字にします。
Sub Find_Mike()
Dim ssConstants
Dim rngFindRange
Dim rngFoundCell
Dim rngFirstFound
Set ssConstants = Spreadsheet1.Constants
' 検索対象のセル範囲をオブジェクト変数に設定します。
Set rngFindRange = Spreadsheet1.Sheets("Sheet1").Range("A1:F10")
' "Mike" が最初に出現する箇所を検索します。
Set rngFoundCell = rngFindRange.Find("Mike", rngFindRange.Cells(1, 1), _
ssConstants.xlValues, ssConstants.xlPart)
' 見つかった場合は...
If Not rngFoundCell Is Nothing Then
' 最初に見つかったセルをオブジェクト変数に設定します。
Set rngFirstFound = rngFoundCell
Do
' フォントを太字に設定します。
rngFoundCell.Font.Bold = True
'"Mike" が出現する次のセルを検索します。
Set rngFoundCell = rngFindRange.FindNext(rngFoundCell)
' 最初に "Mike" が見つかったセルに戻るまでループします。
Loop Until rngFoundCell.Address = rngFirstFound.Address
End If
End Sub