- ベストアンサー
VB特定の文字列を含まない行を削除する方法
- 職場でデータの照合をする際に、特定のキーワードが含まれていない行を削除したい場合、VBのマクロを利用する方法があります。
- アプリケーションボックスを利用して、「特定の文字列が含まれている行を削除」することが可能です。
- VBのマクロを使用すると、指定したキーワードが含まれていない行を見つけて非表示にすることができます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
そんなにむやみにマクロ使わなくても、エクセルの基本機能を使えば簡単に出来ます。 フィルタで消したい行(特定の文字列が含まれている行)だけを表示 全体を選択して可視アイコンをクリックして削除
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7941)
そんなにむやみに複雑なマクロにしなくても、エクセルの基本機能を使えば簡単に出来ます。 例えば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」は全然別物です。
- INTLINSIDE
- ベストアンサー率42% (383/907)
下の方の 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 としたら、どうなりますかね。 (若干の調整は必要になると思います。)
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
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