• 締切済み

エクセルVBAの連続検索

エクセルVBAで、textbox内に入力した参加者の名前を検索しチェックを入れる作業を行いたいです(集会の受付名簿用)。findnextを使っても無限にループするか、同姓の最初の一人しか検索できずに困っています。 Dim 検索セル As Range Dim 最初のセル As String Dim 次の候補 As Range 検索対象文字 = Range("h2").Value Set 検索セル = Range("a5:B100").Find(検索対象文字) If Not 検索セル Is Nothing Then 最初のセル = 検索セル.address Do 検索セル.Select Set 次の候補 = Range("a5:b100").FindNext(after:=検索セル) Loop Until 次の候補.address = 最初のセル End If 手直しをお願いしますTT

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

ANo.1です。 >受付ですので、出欠の入力と参加者の席を確認して案内したいと思っています。 であれば、修正したコードで問題はありませんか? 或いは追記があれば、提示願います。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

ANo.1です。 >同姓の最初の一人しか検索できずに困っています。 多分1周まわって戻ってきているだけだと思います。 ”検索してどうしたいのか”が不明なのです。 そのためMsgBoxで一回ずつ止めてみました。

batovic
質問者

補足

受付ですので、出欠の入力と参加者の席を確認して案内したいと思っています。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Dim 検索セル As Range Dim 最初のセル As String Dim 検索対象文字 As String 検索対象文字 = Range("h2").Value Set 検索セル = Range("a5:B100").Find(検索対象文字) If Not 検索セル Is Nothing Then 最初のセル = 検索セル.Address Do 検索セル.Select Set 検索セル = Range("a5:b100").FindNext(検索セル) MsgBox "次を選択" Loop Until 検索セル.Address = 最初のセル End If こんな感じでしょうか?

batovic
質問者

お礼

今、動作チェックを完了しました。やりたかったことができています。大変感謝しておりますTT

関連するQ&A