Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12341 / 13646 ツリー ←次へ | 前へ→

【11003】値が0の行を全て削除するには? ギン 04/2/23(月) 17:05 質問
【11004】Re:値が0の行を全て削除するには? パピー(PAPIー) 04/2/23(月) 17:14 回答
【11008】Re:値が0の行を全て削除するには? Asaki 04/2/23(月) 20:03 回答
【11010】値が0の行を全て削除するには? ギン 04/2/23(月) 21:29 お礼

【11003】値が0の行を全て削除するには?
質問  ギン  - 04/2/23(月) 17:05 -

引用なし
パスワード
   またまた質問させて下さい。
列Aに数字が1000行くらいあるとして
値が0の行を削除したい場合に
いままでマクロの記憶でオートフィルタで
いったん0を表示させ行削除させていました。
これを0の行アドレスを変数に格納させ一度に
削除する方法に変えたいのですが
うまくいきません。
どなたかお教えくださいませ。

【11004】Re:値が0の行を全て削除するには?
回答  パピー(PAPIー)  - 04/2/23(月) 17:14 -

引用なし
パスワード
   ▼ギン さん:こんにちは。
他にもやり方はあるかと思いますが
以下のコードを試して見てください。
外していたらごめんなさい。

Sub test()
Dim L As Long
Dim i As Long
 
  L = Range("A65536").End(xlUp).Row
  For i = L To 1 Step -1
    If Cells(i, 1).Value = 0 Then
      Rows(i).Delete Shift:=xlUp
    End If
  Next i
  
End Sub

【11008】Re:値が0の行を全て削除するには?
回答  Asaki  - 04/2/23(月) 20:03 -

引用なし
パスワード
   こんにちは。

パピー(PAPIー)さんと同じことですが、Deleteは1度だけになります。
Sub test2()
  Dim rngTgt   As Range
  Dim rngDel   As Range

  For Each rngTgt In Range("A1", Range("A65536").End(xlUp))
    If rngTgt.Value = 0 Then
      If rngDel Is Nothing Then
        Set rngDel = rngTgt
      Else
        Set rngDel = Union(rngDel, rngTgt)
      End If
    End If
  Next rngTgt
  If Not rngDel Is Nothing Then rngDel.EntireRow.Delete Shift:=xlUp
  Set rngDel = Nothing
End Sub

【11010】値が0の行を全て削除するには?
お礼  ギン  - 04/2/23(月) 21:29 -

引用なし
パスワード
   パピーさん Asakiさん
今回は有難うございました。
>Sub test2()
>  Dim rngTgt   As Range
>  Dim rngDel   As Range
>
>  For Each rngTgt In Range("A1", Range("A65536").End(xlUp))
>    If rngTgt.Value = 0 Then
>      If rngDel Is Nothing Then
>        Set rngDel = rngTgt
>      Else
>        Set rngDel = Union(rngDel, rngTgt)
>      End If
>    End If
>  Next rngTgt
>  If Not rngDel Is Nothing Then rngDel.EntireRow.Delete Shift:=xlUp
>  Set rngDel = Nothing
>End Sub
この答えが知りたかったんです。
前にもAsakiさんから列の削除で教えてもらいましたが
行で試しても勉強不足で出来ませんでした。
こうやってみるとなるほどと思いますが
応用力が無くてすみません。
パピーさんも有難うございました。
Step-1は参考になりました。
今度使わせてもらおうと思っています。
もっと勉強します。
お二人ともお世話になりました。

12341 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free