Excel VBA質問箱 IV

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

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


13318 / 13644 ツリー ←次へ | 前へ→

【5888】オートフィルタで不要な行削除 03/6/6(金) 11:25 質問
【5892】Re:オートフィルタで不要な行削除 ベタひで 03/6/6(金) 19:23 回答
【5911】Re:オートフィルタで不要な行削除 Be Quit 03/6/7(土) 19:03 回答
【6005】Re:オートフィルタで不要な行削除 03/6/11(水) 16:59 質問
【6011】Re:オートフィルタで不要な行削除 ベタひで 03/6/11(水) 18:00 回答

【5888】オートフィルタで不要な行削除
質問    - 03/6/6(金) 11:25 -

引用なし
パスワード
   セルAQ(タイトル:商品名)の列に次の文字が含まれるものは
行毎削除したいのですが、【2532】の書き込みを参考にし作ってみましたが
うまく実行されません。


Sub test()
  Range("AQ").AutoFilter 1, "野菜"
  Range("AQ").AutoFilter 1, "乾燥物"
  Range("AQ").AutoFilter 1, "果物"
  Range("AQ").AutoFilter 1, "飲料"
  Range("AQ").AutoFilter 1, "揚げ物"
  With ActiveSheet.AutoFilter.Range
    On Error Resume Next
    .Offset(1).Resize(.Rows.Count - 1) _
    .SpecialCells(xlVisible).EntireRow.Delete (xlUp)
    On Error GoTo 0
  End With
End Sub

どこが間違っているのか御教授おねがいいたします。

【5892】Re:オートフィルタで不要な行削除
回答  ベタひで  - 03/6/6(金) 19:23 -

引用なし
パスワード
   ▼ま さん こんばんは
>セルAQ(タイトル:商品名)の列に次の文字が含まれるものは
>行毎削除したいのですが、【2532】の書き込みを参考にし作ってみましたが
>うまく実行されません。


回答うちの1つとしてですがどうでしょう?
コードはそのまま使わせていただきました。

Sub aaa()

Dim 品名(1 To 5) As String
Dim r As Long
 
品名(1) = "*野菜*"
品名(2) = "*乾燥物*"
品名(3) = "*果物*"
品名(4) = "*飲料*"
品名(5) = "*揚げ物*"

For r = 1 To 5
  Range("a:aq").AutoFilter 43, 品名(r)
 
  With ActiveSheet.AutoFilter.Range
    On Error Resume Next
    .Offset(1).Resize(.Rows.Count - 1) _
    .SpecialCells(xlVisible).EntireRow.Delete (xlUp)
    On Error GoTo 0
    End With
  Selection.AutoFilter
Next r

End Sub

【5911】Re:オートフィルタで不要な行削除
回答  Be Quit  - 03/6/7(土) 19:03 -

引用なし
パスワード
   ま さん

ベタひでさんのをちょっといじってみました。 
Sub aaa()
Dim 品名(1 To 5) As String
Dim r As Long

品名(1) = "*野菜*"
品名(2) = "*乾燥物*"
品名(3) = "*果物*"
品名(4) = "*飲料*"
品名(5) = "*揚げ物*"

For r = 1 To 5
  Range("AQ1").AutoFilter 1, 品名(r)
 
  With ActiveSheet.AutoFilter.Range
    On Error Resume Next
    .Offset(1).Resize(.Rows.Count - 1) _
    .SpecialCells(xlVisible).EntireRow.Delete (xlUp)
    On Error GoTo 0
  End With
  Selection.AutoFilter
Next r

End Sub


もうしわけありません。

【6005】Re:オートフィルタで不要な行削除
質問    - 03/6/11(水) 16:59 -

引用なし
パスワード
   みなさん書込みありがとうございました。

いただいたコードを参考に
以下3つを変更し、マクロ実行してみたのですが、エラーが出て失敗しました。

どこが間違っているのか分からないのですが、
アドバイスいただけないでしょうか。
よろしくお願い致します。

---------------------------------------------
実行時エラー'1004'
RangeクラスのAutoFilterメソッドが失敗しました。
---------------------------------------------

変更した個所-------------------------------------------------------------
・品名→状況
・Dim 状況(1 To 5) As String→Dim 状況(1 To 4) As String
・Range("AQ1").AutoFilter 1, 品名(r)→Range("a:h").AutoFilter 43, 状況(r)
-------------------------------------------------------------------------


Sub test()

Dim 状況(1 To 4) As String
Dim r As Long

状況(1) = "*完了*"
状況(2) = "*却下*"
状況(3) = "*返却*"
状況(4) = "*対応なし*"


For r = 1 To 4
  Range("a:h").AutoFilter 43, 状況(r)
 
  With ActiveSheet.AutoFilter.Range
    On Error Resume Next
    .Offset(1).Resize(.Rows.Count - 1) _
    .SpecialCells(xlVisible).EntireRow.Delete (xlUp)
    On Error GoTo 0
    End With
  Selection.AutoFilter
Next r

End Sub

【6011】Re:オートフィルタで不要な行削除
回答  ベタひで  - 03/6/11(水) 18:00 -

引用なし
パスワード
   ▼ま さん こんばんは

>Sub test()
>
>Dim 状況(1 To 4) As String
>Dim r As Long
>
>状況(1) = "*完了*"
>状況(2) = "*却下*"
>状況(3) = "*返却*"
>状況(4) = "*対応なし*"
>
>
>For r = 1 To 4
>  Range("a:h").AutoFilter 43, 状況(r)
    ↑ この行
> 
>  With ActiveSheet.AutoFilter.Range
>    On Error Resume Next
>    .Offset(1).Resize(.Rows.Count - 1) _
>    .SpecialCells(xlVisible).EntireRow.Delete (xlUp)
>    On Error GoTo 0
>    End With
>  Selection.AutoFilter
>Next r
>
>End Sub

状況(1)〜(5)がh列にあるとしたら・・

  Range("h1").AutoFilter 8, 状況(r)

に変えてみてください。

詳しくはヘルプをみてくださいね〜

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