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 とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2024-12-07 23:46:59 )