• ベストアンサー

行を削除するマクロ2

a列には0から2の数値が入っています。 2行目から、a列の数値が2かつ最下の行(この画像の場合は12行目)までを削除するマクロのvbaの構文を教えてください。 ただし、a列の数値がすべて2未満の場合、行は削除しないようにしてください。 削除するのは行全体で、a列だけではありません。 エクセル2010です。 どうぞよろしくお願いします。

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

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

2を探すってとこだけ、ちょびっと応用するだけです。 sub macro1r1()  dim h as range  if application.countif(range("A:A"), 2) = 0 then exit sub  set h = range("A:A").find(what:=2, lookin:=xlvalues, lookat:=xlwhole, searchdirection:=xlprevious)  range(range("A2"), h).entirerow.delete shift:=xlshiftup end sub

4rd
質問者

お礼

どうもありがとうございます。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 画像では6行目から12行目を削除!というコトですよね? 色々やり方はあると思いますが・・・ Sub Sample1() Dim i As Long, k As Long, c As Range Set c = Range("A:A").Find(what:=2, LookIn:=xlValues, lookat:=xlWhole) For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If Cells(i, 1) = 2 Then k = i Exit For End If Next i If Not c Is Nothing Then Rows(c.Row & ":" & k).Delete End If End Sub こんなんではどうでしょうか?m(_ _)m

4rd
質問者

お礼

どうもありがとうございます。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

次のようなマクロにすればよいでしょう。 Sub 行削除() Dim n, i As Long n = Range("A65536").End(xlUp).Row For i = 2 To n If Range("A" & i) = 2 Then Range("A" & i).EntireRow.Delete End If Next End Sub

4rd
質問者

お礼

どうもありがとうございます。

関連するQ&A