No.3ベストアンサー
- 回答日時:
#2さん、どうやら、Z列がキーのようです。
更にいうと、データは3行目以降の様子です。
Sub 行の削除()
Dim gyou As Long
For gyou = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1
If Range("Z" & gyou).Value >= 2 Then
Range("Z" & gyou).EntireRow.Delete
End If
Next gyou
End Sub
ところで、1200行あるとそれなりに時間がかかりそうですね。
(と言っても数秒でしょうけど。体感で5~7秒くらいかな。)
なので、私からの提案はオートフィルタを使って。
2行目が「項目行」で、3行目以降にデータがあるとして
Sub Sample()
Dim myRng As Range, myRow As Long
If ActiveSheet.AutoFilterMode = True Then Range("A3").AutoFilter
Set myRng = Range("A3").CurrentRegion
myRow = myRng.Rows.Count + 1
myRng.AutoFilter Field:=26, Criteria1:=">=2"
On Error Resume Next
Rows("3:" & myRow).SpecialCells(xlCellTypeVisible).Delete
On Error GoTo 0
myRng.AutoFilter
End Sub
こんな感じで。
(エラー処理が手抜きですけど(笑)。)
手動でフィルタをかけて、それを削除、としても一瞬ですから、
マクロを使わなくても結果(所要時間)はそんなに変わらないですけどね。
ご教示ありがとうございます。
また、返信が遅れました、申し訳ありませんでした。
処理時間も短くできましたので、ベストにさせていただきました。
ありがとうございます。
また、よろしくお願いいたします。
No.6
- 回答日時:
VBAはわからん!な場合のために、手動で一気にやる方法も。
・・・と言っても、フィルタをかけるだけですが。
やはり前提として「2行目には“項目名行”がある」としています。
(無い場合は、3行目にダミーで“項目名行”を作ってやるとやりやすいです。)
そんなこんなで、A3セルにフォーカスを置き(選択した状態で)
(2007以降の場合)
リボンのデータタブ⇒フィルタ を選択。
各項目名のセルに▼がつくので、Z列の▼をクリックしてプルダウン。
数値フィルタ⇒指定の値以上 を選択し、ダイアログ内で「2以上」と設定し、OK。
(2003以前の場合)
データメニュー⇒フィルタ⇒オートフィルタ を選択
各項目名のセルに▼がつくので、Z列の▼をクリックしてプルダウン。
「オプション」を選択し、「2以上」と設定してOK。
(ここから共通)
フィルタがかかったら「項目名行の1行下に表示されている行」を選択。
Ctrl+Shift+(キーボードの)↓キーで、表示されている行を全選択。
反転している中で右クリック⇒削除 で行削除。
(または「Ctrl+テンキーボードの-(マイナスボタン)」でも行削除できます。)
上記と同様のやりかたでフィルタを解除。
以上で、「Z列が2以上」の行だけを削除することが出来ます。
#3での回答は、コレをマクロに書いてみただけです。
参考までに。
以下、私信で申し訳ありませんが・・
#5さん。
いえ、私も「2行目に“項目名行”が無い」可能性は視野外でした。
そうすると、「3行目にダミー行を入れ、最後に消す」手法が有効ですね。
「なるほど」な感覚です。
No.5
- 回答日時:
No.4です。
投稿後に気づきました。
No.3さんの後者のやり方とほぼ同じやり方になっていました。
なおかつエラー処理をしていませんので、Z列に「2以上」のデータがない場合は
マクロが止まってしまいます。
どこか最初の方に
>On Error Resume Next
の1行を追加してもらえれば問題ないと思いますが・・・
それらを考慮すると
No.3さんの方が良いですね!
どうも失礼しました。m(_ _)m
No.4
- 回答日時:
こんにちは!
1200行だというコトですので、ループさせてもさほど時間はかからないと思いますが、
一気に削除する方法です。
Sub 行削除()
Dim endRow As Long
Rows(3).Insert
Range("Z3") = "ダミー"
endRow = ActiveSheet.UsedRange.Rows.Count
Range("Z3").AutoFilter field:=1, Criteria1:=">=2"
Rows(3 & ":" & endRow).SpecialCells(xlCellTypeVisible).Delete shift:=xlUp
Rows(3).Delete
ActiveSheet.AutoFilterMode = False
End Sub
こんな感じではどうでしょうか?m(_ _)m
tom04 様
いつもご教示ありがとうございます。
またお礼が遅くなり申し訳ありませんでした。
同じような回答でしたので、前者をベストにさせていただきました。
また、よろしくお願いいたします。
ありがとうございました。
No.2
- 回答日時:
#1さん、連続してるとまずいから、下からね。
Sub 行の削除()
Dim gyou As Long
For gyou = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Range("a" & gyou).Value >= 2 Then
Range("a" & gyou).EntireRow.Delete
End If
Next gyou
End Sub
早速のご教示ありがとうございます。
返信が遅れました、申し訳ありませんでした。
やはり処理時間が少しかかりますので、他をベストにさせていただきました。
また、よろしくお願いいたします。
No.1
- 回答日時:
例えば次のようなマクロにします。
Sub 行の削除()
Dim gyou As Long
For gyou = 1 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
If Range("Z" & gyou).Value >= 2 Then
Range("Z" & gyou).EntireRow.Delete
End If
Next gyou
End Sub
早速のご教示ありがとうございます。
返信が遅れました、申し訳ありませんでした。
処理時間が少しかかりますので、他をベストにさせていただきました。
また、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 16:07
- Visual Basic(VBA) エクセル 2つの列にある値の完全一致を抜き出すVBA 15 2022/12/15 03:22
- Excel(エクセル) VBA 文字列変換と指定した列にある日時データから時間を削除する方法について 2 2022/04/14 15:23
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Excel(エクセル) エクセルのVBAにショートカットキーの割り当て 3 2022/07/13 14:19
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) VBA 指定した列にある日時データから時間を削除する方法について 4 2022/04/14 11:17
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで時刻(8:00~20:00)...
-
エクセルでオートフィルタのボ...
-
エクセルのオートフィルタで最...
-
Excelのオートフィルタで非表示...
-
エクセルで、条件に一致した行...
-
Excel共有ブックのオートフィル...
-
なぜShowAllDataだとうまく行か...
-
エクセル・条件付で行を削除す...
-
オートフィルタで3つ以上の条...
-
エクセル関数で、数字の入った...
-
エクセルのオートフィルタで抽...
-
エクセル、オートフィルタで最...
-
【Excel/関数/条件付き書式】月...
-
今日の日付のデータをすばやく...
-
オートフィルタで抽出したデー...
-
エクセルの偶数行(奇数行)の抽出
-
エクセルで特定の列にある日付...
-
時間の条件でオートフィルタを...
-
オートフィルタで選択したデー...
-
【大至急】エクセルで、検索語...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで時刻(8:00~20:00)...
-
エクセルのオートフィルタで最...
-
エクセルでオートフィルタのボ...
-
Excelのオートフィルタで非表示...
-
エクセルの偶数行(奇数行)の抽出
-
エクセル関数で、数字の入った...
-
Excel共有ブックのオートフィル...
-
エクセルで、条件に一致した行...
-
エクセル・条件付で行を削除す...
-
access マクロでのフィルタの...
-
オートフィルタで3つ以上の条...
-
オートフィルタで選択したデー...
-
エクセルにて、フィルタをかけ...
-
可視セルを対象としたcountifが...
-
【EXCEL】条件に一致した最新デ...
-
VBA オートフィルタで抽出した...
-
今日の日付のデータをすばやく...
-
【Excel/関数/条件付き書式】月...
-
なぜShowAllDataだとうまく行か...
-
エクセルのオートフィルタで困...
おすすめ情報