• ベストアンサー

VBAで特定の文字が入ったセルをクリアにする方法

Excel VBAに関する質問です。 指定したセル範囲の中で、人月という文字を含む文字が入ったセル を見つけ、そのセルに入った文字を全てクリアにしたいと考えています。 良い方法をご教授いただけませんでしょうか。 人月という文字を含む文字は[0人月]や[2.5人月]など多岐に渡るので、 自分のイメージでは、人月という言葉だけで検索してひっかかるものを全て消そうと思っています。 なお、該当の文字はB列にしかありません。 宜しくお願い致します。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.3

[置換]で「検索する文字列」に *人月* と入れて、「置換後の文字列」に何も入力せずに実行する作業をマクロ記録取れば参考になると思います。 Columns("B:B").Replace What:="*人月*", _             Replacement:="", _             LookAt:=xlPart, _             SearchOrder:=xlByRows, _             MatchCase:=False

その他の回答 (2)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

No1です一部訂正です(前回のままだとエラーが出ます) Sub test() Dim mRange As Range Dim firstAddress As String With Worksheets(1).Range("B:B") Set mRange = .Find("人月", LookIn:=xlValues) If Not mRange Is Nothing Then firstAddress = mRange.Address Do mRange.Clear Set mRange = .FindNext(mRange) If mRange Is Nothing Then Exit Do Loop Until mRange.Address = firstAddress End If End With End Sub

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

Sub test() Dim mRange As Range With Worksheets(1).Range("B:B") Set mRange = .Find("人月", LookIn:=xlValues) If Not mRange Is Nothing Then firstAddress = mRange.Address Do mRange.Clear Set mRange = .FindNext(mRange) Loop While Not mRange Is Nothing And mRange.Address <> firstAddress End If End With End Sub でいかがでしょう

関連するQ&A