[[20160627030018]] 『マクロ A列で指定した日付の行を削除』(ALO) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロ A列で指定した日付の行を削除』(ALO)

マクロ初心者です。
マクロで、A列で「1900/01/00」と入ってる行から下を、一気に削除したいです。
表示は「1900/01/00」ですが、セルには「1900/1/0」と入ってます。

A列       B列      C列    D列
配送予定日 帳日     工務店名 名前
2016/05/26 2016/06/02 A社    あいう
2016/05/27 2016/05/24 B社    かきく
2016/05/27 2016/05/24 F社    さしす
1900/01/00 1900/01/00 0   0
1900/01/00 1900/01/00 0   0

下記のマクロを途中に組みましたが、うまく動きません。
どこを変更すればいいでしょうか?

' 不要な行を削除

Dim i As Long, x As Long
With Sheets("Sheet1").Range("A2").Select
x = .Cells(Rows.Count, "A").End(xlUp).Rows 'A列最終行を取得
For i = x To 1 Step -1 '下から順に

    If Cells(i, 1) = "1900/1/0" Then
    .Rows(i).Delete
    End If
Next i
End With

< 使用 Excel:Excel2013、使用 OS:Windows8 >


 おはようございます。

 1900/01/00 のセルは実際には 0 が入っています。
 初めに 0 の見つかった行より下を全て削除するなら以下のコードで一括で削除できます。

 Sub test()

    With Sheets("Sheet1")
        If WorksheetFunction.CountIf(.Range("A:A"), 0) Then
            .Range(WorksheetFunction.Match(0, .Range("A:A"), 0) & ":" & Rows.Count).Delete Shift:=xlUp
        End If
    End With

 End Sub

 シートは指定でしたね、修正しました。(7:02)

 後質問者さんのコードを活かすなら、
 Withを使う時は、
    With Sheets("Sheet1")
 のようにします。
 Rangeは可変にしたいので記述してはいけません。
 Selectも記述してはいけません。

 x = .Cells(Rows.Count, "A").End(xlUp).Rows
 も
 x = .Cells(Rows.Count, "A").End(xlUp).Row
 ですね。

    If Cells(i, 1) = "1900/1/0" Then
 も
    If Cells(i, 1) = 0 Then
 です。

(sy) 2016/06/27(月) 06:46


 もし、説明の通り、1900/01/00 と表示されているセルの中身が 日付型データで 1900/1/0 と入っている。
 表示書式で yyyy/mm/dd と指定してある ということであれば、以下の操作で目的が達成されます。
 この操作をマクロ記録すれば、一連の処理コードが生成されます。

 1.A列を選択して、検索と置換 -> 置換
 2.検索する文字列に 1900/1/0 、置き換え後の文字列には何もいれず空白のままにしておきます。
 3.オプションをクリックし、セルの内容が完全に同一のものを検索する にチェックをいれて すべて置換
 4.この状態で 検索と選択 -> 条件を選択してジャンプ -> 空白セル を選んで OK
 5.この状態で 削除 -> シートの行の削除

(β) 2016/06/27(月) 09:16


 オートフィルターを利用した以下の手順でもいいですね。
 これもマクロ記録でコードが生成されます。

 1.A1 を選択して データタブ -> フィルター
 2.A列で絞り込み。1900年(または 1900/01/00 ?) 【だけに】チェックしてOK
 3.抽出されたタイトル行以外の行をすべて選択して削除
 4.データタブ -> フィルター

(β) 2016/06/27(月) 09:22


皆さん、ありがとうございます!!
助かりました。

行が削除できた時は感動しました。
マクロってとっても、奥が深いですね。
(ALO) 2016/06/27(月) 10:15


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.