質問編集履歴

4

修正

2021/12/10 01:11

投稿

quark87139
quark87139

スコア6

test CHANGED
@@ -1 +1 @@
1
- 時刻"0:00"以外を抽出するやり方とユーザー設定リスト並替後条件一致する分は上下隣りあわせとするやり方について
1
+ Autofilterにて時刻"0:00"以外を抽出するやり方について
test CHANGED
File without changes

3

修正

2021/12/10 01:11

投稿

quark87139
quark87139

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,8 @@
1
1
  いつも有識者の皆様、いつもありがとうございます。
2
2
 
3
- 今回2点自分なりに検索し取り組んだが、解決に至らなかったため、
3
+ 自分なりに検索し取り組んだが、解決に至らなかったため、
4
4
 
5
- 2点ご質問させてください。
5
+ ご質問させてください。
6
6
 
7
7
 
8
8
 
@@ -58,100 +58,4 @@
58
58
 
59
59
  (補足)
60
60
 
61
- 0:00より大きいといったような形にしない理由としては"0:00"より小さいつまりマイナス表記のある時間があるため
61
+ 0:00より大きいといったような形にしない理由としては"0:00"より小さいつまりマイナス表記のある時間があるためでしょうか?
62
-
63
-
64
-
65
- ---
66
-
67
- ②並替後に重複する値(コード)はサブはメイン(項目名M/s)の下に挿入するやり方(処理速度重視)
68
-
69
- ---
70
-
71
- ![イメージ説明](31cd5f6fb7b05592228a136051c60b8e.png)
72
-
73
- ユーザー設定リストに基づいて並替したリストに対し、
74
-
75
- 特定列の重複値は隣りあわせとなるように並べ替えを行っています。
76
-
77
- 動作自体は問題なく行えているのですが、処理時間がかなり要している状況です
78
-
79
-
80
-
81
- ほぼオブジェクトの操作で行われていることが一番の要因であるのは理解しているのですが、
82
-
83
- より最善のやり方がありましたらご教示頂けないでしょうか。
84
-
85
- ※配列上で切り取りするやり方も検討したのですが、検索しても中々思わしき内容がヒットせず断念した経緯があります。
86
-
87
-
88
-
89
- ```VBA
90
-
91
- With wb
92
-
93
-
94
-
95
- lRow = .Cells(Rows.Count, "B").End(xlUp).Row
96
-
97
- For i = lRow To 3 Step -1
98
-
99
- If .Cells(i, "C") = "サブ" Then
100
-
101
- .Range(i & ":" & i).Cut
102
-
103
-
104
-
105
- j = .Cells(Rows.Count, "C").End(xlUp).Row
106
-
107
- Rows(j + 1).Insert
108
-
109
- End If
110
-
111
-
112
-
113
- Next i
114
-
115
-
116
-
117
- Dim mainRow
118
-
119
- mainRow = WorksheetFunction.CountIf(.Range("C:C"), "メイン")
120
-
121
-
122
-
123
- For i = 3 To lRow
124
-
125
-
126
-
127
- If Cells(i, "C") = "サブ" Then
128
-
129
- Dim code
130
-
131
- code = .Cells(i, "B").value
132
-
133
- .Range(i & ":" & i).Cut
134
-
135
-
136
-
137
- For j = 3 To mainRow
138
-
139
- If .Cells(j, "C").Value Like code Then
140
-
141
- .Rows(j + 1).Insert
142
-
143
- Exit For
144
-
145
- End If
146
-
147
- Next j
148
-
149
- End If
150
-
151
- Next i
152
-
153
-
154
-
155
- End With
156
-
157
- ```

2

初心者マーク追加

2021/12/10 01:11

投稿

quark87139
quark87139

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,8 @@
1
- いつも有識者の皆様のおかげ様でそれなにVBAの知識も蓄えてきてると実感しております。
1
+ いつも有識者の皆様、いつもあがとうございます。
2
2
 
3
+ 今回2点自分なりに検索し取り組んだが、解決に至らなかったため、
4
+
3
- 今回2点ご質問させて頂きたい点があり、質問させてください。
5
+ 2点ご質問させてください。
4
6
 
5
7
 
6
8
 

1

修正

2021/12/09 16:32

投稿

quark87139
quark87139

スコア6

test CHANGED
File without changes
test CHANGED
@@ -92,7 +92,7 @@
92
92
 
93
93
  lRow = .Cells(Rows.Count, "B").End(xlUp).Row
94
94
 
95
- For i = 2 To 4 Step -1
95
+ For i = lRow To 3 Step -1
96
96
 
97
97
  If .Cells(i, "C") = "サブ" Then
98
98
 
@@ -114,11 +114,11 @@
114
114
 
115
115
  Dim mainRow
116
116
 
117
- mainRow = WorksheetFunction.CountIf(.Range("G:G"), "メイン")
117
+ mainRow = WorksheetFunction.CountIf(.Range("C:C"), "メイン")
118
118
 
119
119
 
120
120
 
121
- For i = 2 To lRow
121
+ For i = 3 To lRow
122
122
 
123
123
 
124
124
 
@@ -132,7 +132,7 @@
132
132
 
133
133
 
134
134
 
135
- For j = 4 To honmuRow
135
+ For j = 3 To mainRow
136
136
 
137
137
  If .Cells(j, "C").Value Like code Then
138
138