回答編集履歴

1

基本的なコードしか載せていなかったため、もう少し実用的なコードを追記

2021/02/20 07:53

投稿

Usirow
Usirow

スコア364

test CHANGED
@@ -47,3 +47,59 @@
47
47
  End Sub
48
48
 
49
49
  ```
50
+
51
+ 【追記】
52
+
53
+ 上記のコードは単純ですが、件数が多い場合はとんでもなく遅くなります。
54
+
55
+ そうした遅さに耐えられなくなった場合は、例えば以下のようにDelete処理を一回にまとめるとはやいです。
56
+
57
+
58
+
59
+ ```VBA
60
+
61
+ Sub Tumeru()
62
+
63
+
64
+
65
+ Dim Target As Range
66
+
67
+ For k = 5 To Range("B" & Rows.Count).End(xlUp).Row
68
+
69
+ If (Range("B" & k) = "") Then
70
+
71
+
72
+
73
+ If Target Is Nothing Then
74
+
75
+
76
+
77
+ Set Target = Range("B:L").Rows(k)
78
+
79
+
80
+
81
+ Else
82
+
83
+
84
+
85
+ Set Target = Union(Target, Range("B:L").Rows(k))
86
+
87
+
88
+
89
+ End If
90
+
91
+
92
+
93
+ End If
94
+
95
+ Next k
96
+
97
+
98
+
99
+ Target.Delete shift:=xlUp
100
+
101
+
102
+
103
+ End Sub
104
+
105
+ ```