• ベストアンサー

マクロの記述について

エクセルのマクロについて教えてください。 A列には氏名B列にはコードが入っておりC列からG列に数字が入ります。 C列からG列までのすべてが0の時にその行を削除したいのです。 よろしくお願いします

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

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

ん-? >ちなみにセルが0または空白としたときは 変更前: range("A:G").autofilter field:=i, criteria1:=0 変更後: range("A:G").autofilter field:=i, criteria1:=0, operator:=xlor, criteria2:="=" #ついでについでにと後出しダラダラいつまでも終わらないご相談ばっかりで,うんざりしています。 ってお話ししとかないと,みんないい顔でナニヤッテモ優しく教えてくれるモンだって勘違いしちゃうでしょ?

katstact
質問者

お礼

確かにおっしゃる通りですね。 回答がこちらの希望したとおりの結果でしたので 同じ方に聞くのが適切な回答が得られると思い 安易に追加してしまいました。 まず最初の回答に区切りをつけるべきですよね。 以後気をつけます。

その他の回答 (2)

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

まとめて削除してみます。 sub macro1()  dim i  activesheet.autofiltermode = false  for i = 3 to 6   range("A:G").autofilter field:=i, criteria1:=0  next i  activesheet.autofilter.range.offset(1).entirerow.delete shift:=xlshiftup  activesheet.autofiltermode = false end sub

katstact
質問者

補足

適切な回答ありがとうございました。 思い通りに処理ができました。 ちなみにセルが0または空白としたときは 記述はどのようになりますか? すみませんが教えていただけると助かります。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

マクロ例です。 対象シートタブ上で右クリック→jコードの表示→サンプルコード貼り付け→シート上でAlt+F8キー押下→sample実行 因みにデータ先頭行は見出しとしています。 Sub sample() Dim i As Long For i = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1 If Application.CountIf(Cells(i, "C").Resize(, 5), 0) = 5 Then Rows(i).Delete End If Next End Sub

関連するQ&A

専門家に質問してみよう