- ベストアンサー
Excelマクロでのセル検索について
- Excelのマクロを利用して、範囲内のセルを検索し、検索されたセルの左のセルを表示する方法について教えてください。
- セル検索のためのマクロを利用して、指定した文字(数値)を検索し、検索結果を別のセルに表示する方法を教えてください。
- 現在、色付きで検索結果が表示されるマクロを使用しているが、使い勝手があまり良くないため、改善方法があれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 Sub Data_Find_Try2() Dim 対象セル As Range 'Dim 最初のセル番地 As String 'Dim 検索件数 As Long Cells.Interior.ColorIndex = xlNone If Range("E1").Value = "" Then Exit Sub Set 対象セル = Range("A2:K221").Find(What:=Range("E1").Value, After:=Range("K221"), lookAt:=xlWhole) If 対象セル Is Nothing Then Exit Sub 対象セル.Interior.ColorIndex = 37 Range("K1").Value = 対象セル.Offset(, -1).Value End Sub こうゆう事ですか?
その他の回答 (2)
- n-jun
- ベストアンサー率33% (959/2873)
#1です。 >検索して検索されたセルの左のセルの文字(数値)を表示する方法なんですが をK1にですか? 検索結果が複数の場合、K1には何を(何番目を?)入れるのでしょうか? それとも検索件数は1つとか?
補足
>それとも検索件数は1つとか? 検索結果は複数あります。 >検索結果が複数の場合、K1には何を(何番目を?)入れるのでしょうか? 何番目でもかまいませんが、できれば最初に検索して検索されたセルの左の値(文字列)。 製品の検索をしたいんですが、A列に製品の場所、B列に製品名、C列に製品の場所・・・と交互になっています。 製品の配置も表も整理しきれていないのが現状です。 よろしくお願いします。
- n-jun
- ベストアンサー率33% (959/2873)
Sub Data_Find_Try() Dim 対象セル As Range Dim 最初のセル番地 As String Dim 検索件数 As Long Cells.Interior.ColorIndex = xlNone If Range("E1").Value = "" Then Exit Sub Set 対象セル = Range("A2:K221").Find(What:=Range("E1").Value, After:=Range("K221"), lookAt:=xlWhole) If 対象セル Is Nothing Then Exit Sub 最初のセル番地 = 対象セル.Address Do 対象セル.Interior.ColorIndex = 37 検索件数 = 検索件数 + 1 Set 対象セル = Range("A2:K221").FindNext(対象セル) Loop While 対象セル.Address <> 最初のセル番地 MsgBox "検索件数は" & 検索件数 & " 件です" Range("K1").Value = 検索件数 End Sub こんな感じとか?
補足
回答ありがとうございます。 早速トライしてみたんですが、検索された件数が表示されます。 私の書き方が悪かったのかもしれませんが・・・。 検索して検索されたセルの左のセルの文字(数値)を表示する方法なんですが、Offsetを使うのかなくらいの知識しかありません。 よろしくお願いします。
お礼
早朝の回答ありがとうございます。 会社に行って試してみます。 結果は後ほど、本当にありがとうございます。
補足
出来ました!悩んでいた問題がひとつ解決できました。 本当にありがとうございます。