回答編集履歴

4

表示修正

2017/07/07 22:15

投稿

退会済みユーザー
test CHANGED
@@ -22,7 +22,9 @@
22
22
 
23
23
  Dim start, start2, ennd, ennd2 As Date
24
24
 
25
- Dim name, name2 as String
25
+ Dim name, name2 as String '分かりやすいように名前変数を足しました
26
+
27
+
26
28
 
27
29
  k = Range("A1").End(xlDown).Row
28
30
 

3

バグ修正

2017/07/07 22:15

投稿

退会済みユーザー
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  Dim start, start2, ennd, ennd2 As Date
24
24
 
25
-
25
+ Dim name, name2 as String
26
26
 
27
27
  k = Range("A1").End(xlDown).Row
28
28
 
@@ -32,13 +32,15 @@
32
32
 
33
33
  For i = k To 2 Step -1
34
34
 
35
- '「比較元」の日付
35
+ '「比較元」のデータ
36
36
 
37
- start = Cells(i, "B") + Cells(i, "C")
37
+ name = Cells(i, 1)
38
38
 
39
- ennd = Cells(i, "D") + Cells(i, "E")
39
+ start = Cells(i, 2) + Cells(i, 3)
40
40
 
41
-
41
+ ennd = Cells(i, 4) + Cells(i, 5)
42
+
43
+
42
44
 
43
45
  'iの1つ上を起点に、下から順番に走査する
44
46
 
@@ -46,17 +48,19 @@
46
48
 
47
49
  For i2 = k - 1 To 3 Step -1
48
50
 
49
- '「比較先」の日付
51
+ '「比較先」のデータ
50
52
 
51
- start2 = Cells(i - i2, "B") + Cells(i - i2, "C")
53
+ name2 = Cells(i2, 1)
52
54
 
55
+ start2 = Cells(i2, 2) + Cells(i2, 3)
56
+
53
- ennd2 = Cells(i - i2, "D") + Cells(i - i2, "E")
57
+ ennd2 = Cells(i2, 4) + Cells(i2, 5)
54
58
 
55
59
 
56
60
 
57
61
  '名前が同じかつ、時間が同じとき
58
62
 
59
- If Cells(i, 1) = Cells(i2, 1) And start = start2 And ennd = ennd2 Then
63
+ If name = name2 And start = start2 And ennd = ennd2 Then
60
64
 
61
65
 
62
66
 

2

コード内のコメント修正

2017/07/07 22:12

投稿

退会済みユーザー
test CHANGED
@@ -40,9 +40,9 @@
40
40
 
41
41
 
42
42
 
43
- 'iの1つ上を起点に、下から順番に走査する(2行目まで検索してしまうと、
43
+ 'iの1つ上を起点に、下から順番に走査する
44
44
 
45
- 'i=i2の時に初めの行まで消されてしまうので注意です。)
45
+ '(i2を2行目まで走査してしまうと、i=i2の時に初めの行まで消されてしまうので注意です。)
46
46
 
47
47
  For i2 = k - 1 To 3 Step -1
48
48
 

1

誤植修正

2017/07/07 22:08

投稿

退会済みユーザー
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ・なるべくGotoを使うのは避けましょう
8
8
 
9
- ・cellでは、`cell(1,1)`のように、数字でアドレスをしています。
9
+ ・cellでは、`cell(1,1)`のように、数字でアドレスを指定します。
10
10
 
11
11
  →rangeでは、`range(A1)`のように、英字+数字の名前を使う時にはRangeを使ってください。
12
12