- 締切済み
特定の列に特定の文字があるとき
VBAについてです。 たとえば、エクセルのA列に「あいうえお」という文字があったとき その行を削除したいという場合 素人ながらVBAを真似てみたら、A列以外のところに「あいうえお」が 入っている行も削除されてしまいました。 あくまでA列にその文字があったときにだけ削除したいのですが どのようにしたらいいのでしょうか。 InputBoxを使っていたら、どの列に文字が入っていても 削除されてしまい困っています。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- NuboChan
- ベストアンサー率47% (785/1650)
以下ではどうですか ? (操作は、コピーしたDATAを使用。 オリジナルのデータをそのまま残しておきます。) '_0|変数宣言の指定 Option Explicit '_1|_開始 Sub DeleteRowsWithStrings() '_2|キーワードを入力 Dim keywords As String keywords = "あいうえお" '_3|キーワードがない場合、_を終了 If keywords = "" Then: Exit Sub '_4|シートコピー Dim ws As Worksheet ActiveSheet.Copy after:=ActiveSheet Set ws = ActiveSheet '_5|変数設定 Dim myrange As Range Dim keyword As Variant '_6|キーワードを一つずつ処理 For Each keyword In Split(keywords, ",") '_7|対象シートでA列にキーワードが一つでも含まれている行を削除 Do Set myrange = ws.Range("A:A").Find(keyword, Lookat:=xlPart) If myrange Is Nothing Then: Exit Do Rows(myrange.Row).Delete Loop Next End Sub
- kon555
- ベストアンサー率51% (1842/3559)
流石に具体的なコードがなくては修正方法の回答は不可能ですから、参考になりそうなページを紹介しておきます。 https://daitaideit.com/vba-delete-specific-row/ このページの「セルをループして条件に一致した行を削除」では特定の列のみを対象にして判定するやり方を紹介していますので、少し修正すれば利用可能だと思います。
お礼
知らなった情報なので 改めて拝見したいと思います。 有難うございます。
お礼
「7|対象シートでA列にキーワードが一つでも含まれている行を削除」 これがなかったために、これまで削除してほしくないのも削除されていたんだなと思いました。 有難うございました。