• ベストアンサー

エクセルVBAで検索(FIND使用)

困っています。お願いします。 例、このようなシートがあるとする 100 200 300 1000 10000 エクセルVBAで fc = Range("a1").Interior.Find("100") 「100」で検索すると100だけではなく、100を含むすべての文字列、つまり1000、10000も全部ひっかかります。 ちょっと困るので、完全一致のものだけを抽出する方法ありませんか。 ちなみに今日はじめてエクセルVBAを触りました。初心者です

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 >fc = Range("a1").Interior.Find("100") 本当にExcelのVBAですか? Excel VBAでは、そのような使い方はなかったと思います。 私が、Find メソッドを使う時は、以下のようなスタイルにします。省略はなるべく避けます。なお、100だけの検索という場合は、 LookAt:=xlWhole を使います。Excelがはじめの方には、Findメソッドは、少し、荷が重いような気がします。 入門レベルでは、以下のようなループを使ったらよいと思います。 Sub SampleTest() For Each c In Range("A1:D100")  If c.Value = 100 Then   c.Interior.ColorIndex = 3 '色は赤  End If Next c End Sub Find メソッドを使ったサンプル Select の部分で加工する '------------------------------------------------------------- Sub TestFind()  Dim c As Range  Dim FirstAdd As String  Dim rng As Range  '検索語の代入  Const KENSAKU As Variant = 100    Set rng = ActiveSheet.UsedRange  rng.Cells(1, 1).Select  Set c = ActiveSheet.UsedRange.Find( _     What:=KENSAKU, _     LookIn:=xlValues, _     LookAt:=xlWhole, _     SearchOrder:=xlByRows, _     SearchDirection:=xlNext, _     MatchByte:=True)    If Not c Is Nothing Then   FirstAdd = c.Address   c.Select   If MsgBox(c.Address & vbCrLf & _      "次も検索しますか?", vbOKCancel) = vbCancel Then    Exit Sub   End If      '次の検索   Do    Set c = rng.FindNext(c)    If c Is Nothing Or c.Address = FirstAdd Then 'アドレスの確保     Exit Sub    End If    c.Select 'セルの選択    If MsgBox(c.Address & vbCrLf & _     "次も検索しますか?", vbOKCancel) = vbCancel Then     Exit Sub    End If   Loop  End If    Set c = Nothing  Set rng = Nothing   End Sub

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • NCU
  • ベストアンサー率10% (32/318)
回答No.4

・マクロ記録する。 ・ヘルプ程度は読む。 Find は引数の説明を読まずして使えません。(もしくは使えているつもりでも実は「たまたま」であって、ある日突然誤動作します。) 以上

すると、全ての回答が全文表示されます。
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

Interior??? Set fc = Range("a1").CurrentRegion.Find("100", , LookAt:=xlWhole) ではないでしょうか?

すると、全ての回答が全文表示されます。
  • uissst
  • ベストアンサー率41% (7/17)
回答No.1

findの設定項目LookAtでxlWholeを指定です。 参考 http://www.moug.net/tech/exvba/0050116.htm

すると、全ての回答が全文表示されます。

関連するQ&A