• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB 特定の文字列が入っている行を削除したい)

VB特定の文字列を含まない行を削除する方法

このQ&Aのポイント
  • 職場でデータの照合をする際に、特定のキーワードが含まれていない行を削除したい場合、VBのマクロを利用する方法があります。
  • アプリケーションボックスを利用して、「特定の文字列が含まれている行を削除」することが可能です。
  • VBのマクロを使用すると、指定したキーワードが含まれていない行を見つけて非表示にすることができます。

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

  • ベストアンサー
回答No.4

そんなにむやみにマクロ使わなくても、エクセルの基本機能を使えば簡単に出来ます。 フィルタで消したい行(特定の文字列が含まれている行)だけを表示 全体を選択して可視アイコンをクリックして削除

その他の回答 (3)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

そんなにむやみに複雑なマクロにしなくても、エクセルの基本機能を使えば簡単に出来ます。 例えばA列を対象に: sub macro1()  dim res as string  res = inputbox("WORD?")  if res = "False" or res = "" then exit sub  range("A:A").autofilter field:=1,criteria1:="*" & res & "*"  activesheet.autofilter.range.offset(1).entirerow.delete shift:=xlshiftup  activesheet.autofiltermode = false end sub #余談 エクセルのマクロはVBAと言って、「VB」は全然別物です。

回答No.2

下の方の If Not UR Is Nothing Then ~ End If を If Not UR Is Nothing Then UR.EntireRow.Delete End If あるいは UsedRange.SpecialCells(xlCellTypeVisible).Delete を UsedRange.SpecialCells(xlCellTypeInVisible).Delete としたら、どうなりますかね。 (若干の調整は必要になると思います。)

回答No.1

Sub MatchPartDelRow() Dim R As Range Dim keyWord As Variant keyWord = Application.InputBox("除外対象の文字列は?", Type:=2) If VarType(keyWord) = vbBoolean Or Len(keyWord) = 0 Then Exit Sub Do Set R = ActiveSheet.Range("A:A").Find(What:=keyWord, LookAt:=xlPart) If R Is Nothing Then Exit Sub R.EntireRow.Delete Loop End Sub

関連するQ&A