Excel VBA 質問スレッド №2043 (解決済)
findnextで複数条件を検索したい
投稿者 : でんち 投稿日時 : 2024/11/17(Sun) 21:45:17 OS : Windows 10 EXCEL : Excel 2019
【実現したいこと】
7行目と9行目に検索値と一致するものがあればセルの背景色を変える。
検索値:B1~J1
下記が実際に記述したコードで、検索値(What)に複数のキーワード(B1:J1やB1,D1,F1,H1,J1等)を入れるとエラーになってしまいました。
findnextメソッドの検索値を複数にすることは可能でしょうか。
findメソッドで検索値を複数にするコードは見つけたのですが、検索結果が1つとは限らないのでfindnextメソッドで実現させたいです。
【実現したいこと】
7行目と9行目に検索値と一致するものがあればセルの背景色を変える。
検索値:B1~J1
下記が実際に記述したコードで、検索値(What)に複数のキーワード(B1:J1やB1,D1,F1,H1,J1等)を入れるとエラーになってしまいました。
findnextメソッドの検索値を複数にすることは可能でしょうか。
findメソッドで検索値を複数にするコードは見つけたのですが、検索結果が1つとは限らないのでfindnextメソッドで実現させたいです。
'祝日と一致する出荷日行のセルを選択する
Sub Find()
Dim FoundCell As Range, FirstCell As Range, Target As Range
Set FoundCell = Range("B7:AH7,B9:AH9").Find(What:=Range("B1"))
If FoundCell Is Nothing Then
MsgBox "見つかりません"
Exit Sub
Else
Set FirstCell = FoundCell
Set Target = FoundCell
End If
Do
Set FoundCell = Range("B7:AH7,B9:AH9").FindNext(FoundCell)
If FoundCell.Address = FirstCell.Address Then
Exit Do
Else
Set Target = Union(Target, FoundCell)
End If
Loop
Target.Select
'選択したセルの色を薄いブルーにする
Selection.Interior.Color = RGB(221, 235, 247)
End Sub
スポンサーリンク
[返信 1] Re : findnextで複数条件を検索したい
投稿者 : 玉ちゃんファイト 投稿日時 : 2024/11/18(Mon) 02:36:07
msgbox Range("B7:AH7,B9:AH9")
ができないのと同じ
msgbox Range("B7:AH7,B9:AH9")
ができないのと同じ
[返信 2] Re : findnextで複数条件を検索したい
投稿者 : ピロリ 投稿日時 : 2024/11/18(Mon) 05:31:04
■[質問] でんちさん(2024-11-17 21:45:17)の記事
> findnextメソッドの検索値を複数にすることは可能でしょうか。
多分、Find(What:=Range("B1") Or Range("C1") Or ・・・ ) のような検索をしたいのでしょうけど、
既に回答のあるように、findメソッドは複数の検索キーワードを指定できません。
↓ご参考です。
■[質問] でんちさん(2024-11-17 21:45:17)の記事
> findnextメソッドの検索値を複数にすることは可能でしょうか。
多分、Find(What:=Range("B1") Or Range("C1") Or ・・・ ) のような検索をしたいのでしょうけど、
既に回答のあるように、findメソッドは複数の検索キーワードを指定できません。
↓ご参考です。
Sub Find2()
Dim FoundCell As Range, FirstCell As Range
Dim Search As Range
For Each Search In Range("B1:J1") '検索キーワードは1つずつ処理すべき
If Search <> "" Then
Set FoundCell = Range("B7:AH7,B9:AH9").Find(What:=Search)
If Not FoundCell Is Nothing Then
Set FirstCell = FoundCell
Do
FoundCell.Interior.Color = RGB(221, 235, 247) '検索セルを薄いブルー
Set FoundCell = Range("B7:AH7,B9:AH9").FindNext(FoundCell)
If FoundCell.Address = FirstCell.Address Then
Exit Do
End If
Loop
End If
End If
Next Search
End Sub
[返信 3] Re : findnextで複数条件を検索したい
投稿者 : でんち 投稿日時 : 2024/11/18(Mon) 15:51:34
玉ちゃんファイト さま
ピロリ さま
ご返信いただきありがとうございます。
findnextメソッドでは複数条件で検索はできないのですね。
なにかやり方が無いか引き続き調べてみます。
ありがとうございました!
玉ちゃんファイト さま
ピロリ さま
ご返信いただきありがとうございます。
findnextメソッドでは複数条件で検索はできないのですね。
なにかやり方が無いか引き続き調べてみます。
ありがとうございました!
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-12-20 05:09:29 )