
マクロによる行削除については、空白行の削除などいろいろな質問と
回答が出ていますが、データ量が多くなると自動化でもかなり時間が
かかります。
そこで、ソートにより並べ替えを最初に行い、ある列に、最初に
ある言葉や数字が出た行から最終行までを一括削除するマクロなら、
処理時間が早く出来ないかと思いました。
例えは、データA10からZ300で、並べ替えによりH列の最初に
日本という言葉が出たら、その行から最終300行までを一括削除
するという方法です。
(削除は行全体でもAからZまでの行、どちらでもよいです)
そんな方法が出来るなら教えて下さい。よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
こんにちは。
2パターン作ってみました。
test1 はH10以降のH列の中で「日本」を探して
そのセル以降のデータ行を削除します。
test2 は並び替えなしに、H10以降のH列に「削除」の文字を
探して、見つかった全ての行を複数選択して、最後にまとめて
削除します。 Unionを使った例です。
Sub test()
Dim c As Object
Dim myKey As String
Dim myRange As Range
Dim myFirstCell As Range
Dim myLastCell As Range
Set myFirstCell = Range("H10")
myKey = "日本"
Set myLastCell = Cells(Rows.Count, myFirstCell.Column).End(xlUp)
Set myRange = Range(myFirstCell, myLastCell)
Set c = myRange.Find(What:=myKey, LookIn:=xlValues, lookat:=xlPart, _
SearchOrder:=xlByColumns, MatchByte:=False)
If Not c Is Nothing Then
Range(c, myLastCell).EntireRow.Delete
End If
Set myRange = Nothing
Set c = Nothing
Set myFirstCell = Nothing
Set myLastCell = Nothing
End Sub
'==============================================
Sub test2()
Dim c As Object
Dim myKey As String
Dim myRange As Range
Dim UnionRange As Range
Dim fAddress As String
Set myRange = Range("H10", Cells(Rows.Count, "H").End(xlUp))
myKey = "削除"
With myRange
Set c = .Find(What:=myKey, LookIn:=xlValues, lookat:=xlPart, _
SearchOrder:=xlByColumns, MatchByte:=False)
If Not c Is Nothing Then
fAddress = c.Address
Do
If UnionRange Is Nothing Then
Set UnionRange = c
Else
Set UnionRange = Union(c, UnionRange)
End If
Set c = .FindNext(c)
If c.Address = fAddress Then Exit Do
Loop
UnionRange.EntireRow.Delete
End If
End With
Set myRange = Nothing
Set UnionRange = Nothing
Set c = Nothing
End Sub
早々のご教示ありがとうございました。
バッチリできました。
またパターン2について併せて作成していただき感激です。
本当にありがとうございました。
No.5
- 回答日時:
#4です。
#3のtest2() ではFindメソッドで削除したい単語を検索してますが、
おそらく、オートフィルタで絞り込んで行一括削除したほうが早い気がします。
興味があれば試してみてください。
必要ならサンプルを作りますよ。
No.3
- 回答日時:
こんにちは!
参考になるかどうか判りませんが・・・
一例です。
A列全てを範囲指定し、列を挿入します。
元データが右に1列ずつずれますので、
元のH列がI列に移動します。
そして、A10セルに
=IF(COUNTIF(I10,"日本*"),1,"")
という数式を入れ、フィルハンドルでダブルクリックします。
これでI列が「日本」から始まるセルに「1」が表示されますので
当方使用のExcel2003の場合ですが
データ → フィルタ → オートフィルタ で
A列が「1」のものを抽出し、その行全てを削除します。
最後にオートフィルタを解除して、A列全てを削除すれば完了です。
もし、H列のセルに「日本」という文字列が含まれている という条件なら数式は変わってきます。
一気に!というわけにはいかないのですが、
参考になれば幸いです。
他に良い方法があれば読み流してくださいね。m(__)m
No.2
- 回答日時:
並べ替えにより範囲指定は終わっているので
If Range("H10") = "日本" Then
Selection.EntireRow.Delete
End If
を追加すればできると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- iPhone(アイフォーン) 以前使っていたSIMカード抜いた状態のiPhoneの 写真アプリの中のデータを一括削除して 『最近削 2 2022/05/20 03:00
- Excel(エクセル) エクセルのVBAにショートカットキーの割り当て 3 2022/07/13 14:19
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/07 08:37
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- LINE LINEに詳しい方よろしくお願いします。 あるLINE の過去履歴(オープンチャット)だけを一括で消 1 2023/06/26 21:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/07/13 12:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
EXCELで日付を比べ3か月以内の...
-
Excelで並び替え後にア行...
-
エクセルで行の高さ及び列幅の...
-
【マクロ】並び替えの範囲が、...
-
オートフィルタ後のデータから...
-
Excel VBAでセルのクリアが出来...
-
基準日以前のデータを範囲を指...
-
文字列を比較し、相違するフォ...
-
プルダウンに【なし、平均、デ...
-
急ぎ!色のついたセルを非表示...
-
EXCELの関数で大なり記号を複数...
-
時間の重複チェック
-
【Excel】数式の参照範囲を可変...
-
エクセルの主軸と第2軸の0を合...
-
エクセルで円グラフに引き出し...
-
同一セルに日時があるものを日...
-
エクセルで文字が白くなる
-
エクセルで長い行を5行ごとに1...
-
Excelで、空白を表示したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
【マクロ】並び替えの範囲が、...
-
Excelで並び替え後にア行...
-
エクセルで行の高さ及び列幅の...
-
【Excel VBA】指定した行の最大...
-
オートフィルタ後のデータから...
-
エクセルの時刻のカウントが出...
-
基準日以前のデータを範囲を指...
-
エクセル関数について
-
EXCELで日付を比べ3か月以内の...
-
文字列を比較し、相違するフォ...
-
急ぎ!色のついたセルを非表示...
-
プルダウンに【なし、平均、デ...
-
excel / ピポッド 日数を出したい
-
マクロで行の高さを設定したい
-
VBA 複数行の検索及び抽出
-
エクセル VBA 行間隔を飛ばした...
-
【Excel】数式の参照範囲を可変...
-
時間の重複チェック
-
EXCEL 最終行のデータを他のセ...
おすすめ情報