回答編集履歴

9

修正漏れ

2020/09/27 07:34

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -284,7 +284,7 @@
284
284
 
285
285
  If (Left(.Cells(lngFromRowsNo, 2).Value, 2) = "A1" Or Left(.Cells(lngFromRowsNo, 2).Value, 2) = "B1" Or Left(.Cells(lngFromRowsNo, 2).Value, 2) = "C1") Then
286
286
 
287
- '※ここ修正OKです
287
+ '訂正.Cells( 省略しない
288
288
 
289
289
 
290
290
 

8

修正

2020/09/27 07:34

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -261,3 +261,65 @@
261
261
 
262
262
 
263
263
  ```
264
+
265
+
266
+
267
+ 追記2
268
+
269
+ 質問者様の返答内容を記載します。
270
+
271
+ ```VBA
272
+
273
+ '***** ここから
274
+
275
+ ' 2. コピー元のシートを1行目から検索
276
+
277
+ For lngFromRowsNo = 1 To .UsedRange.Rows.Count
278
+
279
+ '※.UsedRange.Rows.Countは省略しない!直っていません
280
+
281
+
282
+
283
+ ' 3. B列に"A1"or"B1"or"C1"で始まる文字列がある場合、[開発]の値として変数に代入しておく。
284
+
285
+ If (Left(.Cells(lngFromRowsNo, 2).Value, 2) = "A1" Or Left(.Cells(lngFromRowsNo, 2).Value, 2) = "B1" Or Left(.Cells(lngFromRowsNo, 2).Value, 2) = "C1") Then
286
+
287
+ '※ここは修正OKです
288
+
289
+
290
+
291
+ End If
292
+
293
+ ' 4. C列が4セル結合している場合(.MergeCellsがTrueの時に.MergeArea.Count = 4 の場合)
294
+
295
+
296
+
297
+ ' 4.1. C列に"担当者"という文字列が入っている場合、表のヘッダーとして[年月]の値をコピー先の行へ設定する。
298
+
299
+
300
+
301
+ ' 5. C列が2セル結合している場合(.MergeCellsがTrueの時に.MergeArea.Count = 2 の場合)
302
+
303
+
304
+
305
+ ' 5.1. C列に文字列が入っている場合、表の明細として[担当者][工数]の値をコピー先の行へ設定する。
306
+
307
+
308
+
309
+ ' ※コピー先の行へ設定した場合追加なので、コピー先は次の行へ移動
310
+
311
+ lngRowsNo = lngRowsNo + 1
312
+
313
+ '※ここもなぜ変数lngRowsNoなんですか?直っていません
314
+
315
+
316
+
317
+ Next i
318
+
319
+ '※追加 ここの変数名もおかしいですよね?
320
+
321
+
322
+
323
+ '***** ここまで
324
+
325
+ ```

7

修正漏れ

2020/09/27 07:21

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -222,8 +222,6 @@
222
222
 
223
223
  If (Left(.Cells(i, 2).Value, 2) = "A1" Or Left(.Cells(i, 2).Value, 2) = "B1" Or Left(.Cells(i, 2).Value, 2) = "C1") And .Cells(i, 2).MergeCells = False Then
224
224
 
225
- '※~~B列に"A1"or"B1"or"C1"で始まるに関しては合っています。~~
226
-
227
225
  '※セルの参照でなぜi変数を使っているのですか?
228
226
 
229
227
  'ただ不要な条件があります。

6

修正

2020/09/27 07:04

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -222,7 +222,9 @@
222
222
 
223
223
  If (Left(.Cells(i, 2).Value, 2) = "A1" Or Left(.Cells(i, 2).Value, 2) = "B1" Or Left(.Cells(i, 2).Value, 2) = "C1") And .Cells(i, 2).MergeCells = False Then
224
224
 
225
- '※B列に"A1"or"B1"or"C1"で始まるに関しては合っています。
225
+ '※~~B列に"A1"or"B1"or"C1"で始まるに関しては合っています。~~
226
+
227
+ '※セルの参照でなぜi変数を使っているのですか?
226
228
 
227
229
  'ただ不要な条件があります。
228
230
 

5

修正漏れ

2020/09/27 07:03

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -212,9 +212,9 @@
212
212
 
213
213
  For lngFromSheetIndex = 1 To .UsedRange.Rows.Count
214
214
 
215
- '訂正ここに関してすでに回答してありした。
215
+ '※なぜlngFromSheetIndexなのですか?変数用意してすよね?
216
-
216
+
217
- '※ただし.UsedRange.Rows.Countに関いて省略して書かない。
217
+ '※.UsedRange.Rows.Countに関いて省略して書かない。
218
218
 
219
219
 
220
220
 

4

修正漏れ

2020/09/27 06:59

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -102,6 +102,8 @@
102
102
 
103
103
 
104
104
 
105
+ ' 2. コピー元のシートを1行目から検索
106
+
105
107
  ' 見つかったExcelブックのシートを順番に検索(登録があるシートすべて)
106
108
 
107
109
  For lngFromSheetNo = 1 To wbFrom.Worksheets.Count
@@ -210,9 +212,9 @@
210
212
 
211
213
  For lngFromSheetIndex = 1 To .UsedRange.Rows.Count
212
214
 
213
- '※なぜlngFromSheetIndexなのでか?変数は用意済みすよね?
215
+ '訂正ここに関してはすでに回答してありました。
214
-
216
+
215
- '※.UsedRange.Rows.Countに関いて省略して書かない。
217
+ '※ただし.UsedRange.Rows.Countに関いて省略して書かない。
216
218
 
217
219
 
218
220
 

3

返信追記

2020/09/27 06:58

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -192,10 +192,70 @@
192
192
 
193
193
  End Sub
194
194
 
195
-
196
-
197
-
198
-
199
-
200
-
201
195
  ```
196
+
197
+
198
+
199
+ 追記1
200
+
201
+ 質問者様の返答内容を記載します。
202
+
203
+ (追記・編集依頼ですと表示が崩れる為)
204
+
205
+ ```VBA
206
+
207
+ '***** ここから
208
+
209
+ ' 2. コピー元のシートを1行目から検索
210
+
211
+ For lngFromSheetIndex = 1 To .UsedRange.Rows.Count
212
+
213
+ '※なぜlngFromSheetIndexなのですか?変数は用意済みですよね?
214
+
215
+ '※.UsedRange.Rows.Countに関いて省略して書かない。
216
+
217
+
218
+
219
+ ' 3. B列に"A1"or"B1"or"C1"で始まる文字列がある場合、またはセルが結合されていない場合、[開発]の値として変数に代入しておく。
220
+
221
+ If (Left(.Cells(i, 2).Value, 2) = "A1" Or Left(.Cells(i, 2).Value, 2) = "B1" Or Left(.Cells(i, 2).Value, 2) = "C1") And .Cells(i, 2).MergeCells = False Then
222
+
223
+ '※B列に"A1"or"B1"or"C1"で始まるに関しては合っています。
224
+
225
+ 'ただ不要な条件があります。
226
+
227
+
228
+
229
+ End If
230
+
231
+ ' 4. C列が4セル結合している場合(.MergeCellsがTrueの時に.MergeArea.Count = 4 の場合)
232
+
233
+
234
+
235
+ ' 4.1. C列に"担当者"という文字列が入っている場合、表のヘッダーとして[年月]の値をコピー先の行へ設定する。
236
+
237
+
238
+
239
+ ' 5. C列が2セル結合している場合(.MergeCellsがTrueの時に.MergeArea.Count = 2 の場合)
240
+
241
+
242
+
243
+ ' 5.1. C列に文字列が入っている場合、表の明細として[担当者][工数]の値をコピー先の行へ設定する。
244
+
245
+
246
+
247
+ ' コピー先の行へ設定した場合追加なので、コピー先は次の行へ移動
248
+
249
+ lngRowsNo = lngRowsNo + 1
250
+
251
+ ' ※なぜlngRowsNoなのですか?変数は用意済みですよね?
252
+
253
+ Next i
254
+
255
+
256
+
257
+ '***** ここまで
258
+
259
+
260
+
261
+ ```

2

修正漏れ

2020/09/27 06:53

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -102,7 +102,7 @@
102
102
 
103
103
 
104
104
 
105
- ' 見つかったExcelブックのシートを順番に検索(登録があるすべて)
105
+ ' 見つかったExcelブックのシートを順番に検索(登録があるシートすべて)
106
106
 
107
107
  For lngFromSheetNo = 1 To wbFrom.Worksheets.Count
108
108
 

1

編集

2020/09/27 06:28

投稿

kuma_kuma_
kuma_kuma_

スコア2506

test CHANGED
@@ -102,7 +102,7 @@
102
102
 
103
103
 
104
104
 
105
- ' 見つかったExcelブックのシートを順番に検索
105
+ ' 見つかったExcelブックのシートを順番に検索(登録がある行すべて)
106
106
 
107
107
  For lngFromSheetNo = 1 To wbFrom.Worksheets.Count
108
108