[Excel VBA] セルの検索(Range.Findメソッド)
公開日:
:
最終更新日:2015/07/10
カテゴリ: 03-5_ExcelVBA_メモ・小技集
タグ: Excel VBA, Range.Findメソッド, メソッド
動作確認環境
Windows7
Excel: 2007
構文
1 2 |
検索対象範囲.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat) |
<戻り値>
・検索範囲の先頭のセルを表す Range オブジェクト。
・一致するデータが見つからなかった場合、Nothing を返します。
<備考>
・引数 LookIn、LookAt、SearchOrder、および MatchByte の設定は、このメソッドを使用するたびに保存されます。
What:= | 必須: Variant型 検索文字列を入力します。 |
After:= | 省略可能: Variant型 指定したセルの次から検索を開始します。省略すると検索範囲の左上セルを指定したことになります |
LookIn:= | 省略可能: Variant型 検索対象を指定します[図1参照]。 “数式: xlFormulas” “値: xlValues” “コメント: xlComments” |
LookAt:= | 省略可能: Variant型 完全一致、部分一致の選択 “完全一致: xlWhole” “部分一致: xlPart” |
SearchOrder:= | 省略可能: Variant型 検索の方向を指定します。 “行: xlByRows” “列: xlByColumns” |
SearchDirection:= | 省略可能: ???型 検索の向きを指定します “次を検索: xlNext” “前を検索(Shift + 次を検索): xlPrevious” |
MatchCase:= | 省略可能: Variant型 大文字と小文字を区別して検索するか否かを指定します。 “区別する: True” “区別しない: False” |
MatchByte:= | 省略可能: Variant型 半角、全角を区別して検索するか否かを指定します。 “区別する: True” “区別しない: False” |
SearchFormat:= | 省略可能: Variant型 書式を検索の条件に含めるか否か指定します。 “含める: True” “含めない: False” |
サンプルコード
Findメソッドでシンプルに検索
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub Search() ' Dim Foundcell As Range ' Set Foundcell = Range("A1:K7").Find(What:="B4B") ' If Foundcell Is Nothing Then '検索結果が見つからなかったときの処置 MsgBox "検索単語が見つかりません" Else '検索結果が見つかったときの処置 Foundcell.Select MsgBox Foundcell.Address End If End Sub |
FindNextメソッドで次を検索
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Sub Search_Next() ' Dim Foundcell As Range Dim FirstAddress As String ' Set Foundcell = Range("A1:K7").Find(What:="B4B") ' If Foundcell Is Nothing Then '検索結果が見つからなかったときの処置 MsgBox "検索単語が見つかりません" ElseIf Not Foundcell Is Nothing Then '検索結果が見つかったときの処置 FirstAddress = Foundcell.Address Do Foundcell.Select MsgBox Foundcell.Address Set Foundcell = Range("A1:K7").FindNext(Foundcell) Loop While Not Foundcell Is Nothing And Foundcell.Address <> FirstAddress End If End Sub |
サンプルファイル
広告
関連記事
-
-
[Excel VBA] 印刷時の余白、ヘッダー、フッター等を設定する。
動作確認環境 Windows7 Excel: 2007、2013 説明 余白、ヘッダー、
-
-
動的配列と固定配列 – Excel VBA
動作確認環境 Windows7 Excel: 2007 構文 N/A サンプルコー
-
-
[Excal VBA] セルをアクティブにする。 – Range.Activate メソッド-
動作確認環境 Windows7 Excel: 2007, 2013 説明 1つのセルをア
-
-
[Excel VBA] メッセージボックスを使う
動作確認環境 Windows10 Excel: 2016 説明 メッセージボックスを使う
-
-
[Excal VBA] セルを挿入する。 – Range.Insert メソッド-
動作確認環境 Windows7 Excel: 2007, 2013 説明 指定された範囲
-
-
実行中のマクロを中断する – Excel VBA
動作確認環境 Windows7 Excel: 2007 手順 Ctrl + Pause
-
-
[Excel VBA] セルの行列番号、参照範囲(アドレス)を取得する(Range.Address プロパティ) – Excel VBA
動作確認環境 Windows7 Excel: 2007 構文 対象範囲: Rang
-
-
[Excel VBA] 改ページプレビュー、ノーマルビュー(標準)、ページレイアウト表示を切り替える -Window.Viewプロパティ-
動作確認環境 Windows7 Excel: 2007、2013 説明 ウィンドウに表示
-
-
[Excal VBA] オートフィルターを使ってリストにフィルターをかけます。 – Range.AutoFilter メソッド-
動作確認環境 Windows7 Excel: 2007, 2013 説明 オートフィルタ