• ベストアンサー

A列に特定の文字と数字があればその行を削除

A列には大半が文字が入力されており特定の文字"自分"と一部数字があればその2,3,4行を削除し以下のように行を詰めたいのですがどなたかVBAコードの解る方お願いします。   A  B  C    1 鈴木 あ い     2 自分 う え       3 123 お あ    4 368 え う 5 江藤 え う    ↓   A  B  C 1 鈴木 あ い 2 江藤 え う

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.2

No1の追加です。 もし、加藤1とか1加藤などのような行も削除対象でしたら Sub Example2() Dim i As Long, j As Long Dim MyNumeric As Boolean For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1 MyNumeric = True For j = 1 To Len(Cells(i, "A").Value) MyNumeric = Mid(Cells(i, "A").Value, j, 1) Like "[!0-9]" If MyNumeric = False Then Exit For End If Next j If Cells(i, "A").Value = "自分" Or MyNumeric = False Then Cells(i, "A").EntireRow.Delete End If Next i End Sub

kuma0220
質問者

お礼

ありがとうございます。勉強になり助かりました。

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.1

数値のセルが数値しかない場合だと Sub Example() Dim i As Long For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1 If Cells(i, "A").Value = "自分" Or IsNumeric(Cells(i, "A").Value) Then Cells(i, "A").EntireRow.Delete End If Next i End Sub

関連するQ&A

  • 重複行を削除

    重複する行をVBAコードで削除したいのですが A列 B列 C列 あ  1  a あ  1  a あ  2  a い  1  a い  2  c い  2  c A列 B列 C列 あ  1  a あ  2  a い  1  a い  2  c のようにABC列同一文字は1行にしたいのですがVBAコード、関数の解る方ご教授願います。

  • エクセルVBAで特定の文字を含まない行を削除する

    エクセルVBAで特定の文字列(たとえば” りんご ”)を含まない行を削除するものを作成したいです。 ” りんご ”がB列だけにしかない場合は作成できたのですが、 ” りんご ”がB列とC列にも含まれていて どちらかに含まれていたら、その行を残して、それ以外の行を削除したい場合にはどうしたらいいのかわかりませんでした。 教えてください。 

  • VBA 特定の文字列を含む行を削除する方法

    特定の文字列を含む行を削除する方法が知りたいです。 行を削除する方法はWebで見つけたのですが↓ ---------------------------------------------------- Sub 特定の文字列を含む行を削除() Dim c As Range Dim myRow As Long With Range("A:A") Set c = .Find("特定の文字列") Do While Not c Is Nothing Rows(c.Row).Delete shift:=xlUp Set c = .Find("特定の文字列") Loop End With End Sub ---------------------------------------------------- ↑行を指定している箇所のRowsを Columns  RowをColomn に変更して以下の様にしてみました、   Columns(Colomn,c).Delete shift:=xlUp だめでした、、、。 VBAの知識が乏しく、組み立て方について理解が無いため、どうすればよいかさっぱりわからず、、 こちらで質問させて頂きました。。。 何卒宜しくお願い致します。

  • 特定文字列を含まない行を削除

    以前特定文字列を含む行を削除する方法の質問をし、正規表現を置換することでできることを知りました。^.*特定の文字列.*\n 今度は特定文字列を含まない行を削除を削除したいです。 この場合どう記述すればいいでしょうか? また、特定文字列1と特定文字列2のどちらかを含まない行を削除する方法もあわせて知りたいです。

  • 特定文字列と不特定文字列の削除方法

    下記のA列に時刻が記録されております。 A列 時刻 20:00 21:30 22:00 23:45 0:00(7/17) 1:15 2:00 3:00 21:45 22:15 23:30 1:30(7/18) 4:30 5:00 6:00 上記のA列を基にして、B列にはA列に表示されている(7/17)や(7/18)といった、不要な文字列(日 付が変わった際に、時刻の後ろに日付を付け加えたもの)を削除して表示しています。 B列 時刻 20:00 21:30 22:00 23:45 0:00 1:15 2:00 3:00 21:45 22:15 23:30 1:30 4:30 5:00 6:00 =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"(",""),"/",""),")","") ( / )という文字列は表示されなくなりましたが、 日付の数字部分7,17や7,18などの不特定の文字列の削除方法がわかりませんでし た。 A列を参照して、( / )という特定文字列と、7,17や7,18といった不特定文字列の を削除して、B列に表示させる方法は有りますか? 何卒よろしくお願いしたします。

  • エクセルマクロ 特定の文字列を含む行を削除

    エクセルマクロ 特定の文字列を含む行を削除 エクセルのマクロについて教えてください。 下の中から列を限定せず、すべての行でAAA、CCCのいずれかがある場合、 その行ごと、すべて削除したいのです。 時に削除したい特定の文字列が数十種類になるため、 マクロ起動時に削除したい特定の文字を記述したファイルを読み込み、それから 削除できるようにしたいのです。場合によってはそのファイルを編集し、 削除したい文字列を変更したいのです。 ご教示いただだけないでしょうか A列 B列 C列 1 AAA BBB CCC 2 BBB CCC FFF 3 DDD BBB FFF 4 AAA CCC DDD 5 GGG RRR UUU 行中にAAA、BBBがある場合、削除したい ↓ A列 B列 C列 5 GGG RRR UUU マクロを実行し、上記の結果にしたい。

  • 文字列から「任意の数字+特定の文字」を探す

    VBA マクロ操作なのですが、ある文字列中に「任意の数字+特定の文字」があればそこで分離、というコードを作りたいと思っています。 具体的には Cells(1,1)=24-15[5,5-[- ↓ ”5[”で分離 Cells(1,1)=24-15 他には Cells(1,1)=2[-1  → 2 Cells(1,1)=6[[-[1[   → 6[[-[1 Cells(1,1)=7-[-1  → 7-[-1 という結果を得たいと思っています。 ”数字+[ "となっている部分を探したいのですが、文字である" [ "は指定できますが数字が何かは不明です。 ”数字+[ "がない場合もありその時は分離しません。 よろしくお願いします。

  • 複数行を特定の列の各セルの中にある特定の文字列でソートする

    複数行を特定の列の各セルの中にある特定の文字列でソートしてその特定の文字のみが含まれる行のみ取り出す方法って簡単にできますか? たとえばA1からF100までのセルでC列のセルに特定の文字列が含まれる場合その行を集めて残りはそのしたの行に置き換えるとか。 特定の文字列はセルの文字列の中のどの部分にあるかは任意とします。よろしくおねがいします。 イージス

  • 特定の列に特定の文字があるとき

    VBAについてです。 たとえば、エクセルのA列に「あいうえお」という文字があったとき その行を削除したいという場合 素人ながらVBAを真似てみたら、A列以外のところに「あいうえお」が 入っている行も削除されてしまいました。 あくまでA列にその文字があったときにだけ削除したいのですが どのようにしたらいいのでしょうか。 InputBoxを使っていたら、どの列に文字が入っていても 削除されてしまい困っています。

  • 末尾の数字を文字列から消去する

    office2010 A列に8桁の文字列が複数行入っています。 A1B00001 A1CB0002 A1NDE302 … この状態で後側の数字(一番最後の英の文字列を残す)を消去したいです。 消去された文字列はB列に表示。 上記の場合 A1B A1CB A1NDE … をB列に表示する方法を教えていただきたく。 関数、VBAどちらでも可です。 数字だけを消去というのはWEBで探せたのですが、英と英の間の数字は残したいのです。

専門家に質問してみよう