teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

表示修正

2017/07/07 22:15

投稿

退会済みユーザー
answer CHANGED
@@ -10,7 +10,8 @@
10
10
  Dim k, i, i2 As Long
11
11
  Dim TMaxRow As Variant
12
12
  Dim start, start2, ennd, ennd2 As Date
13
- Dim name, name2 as String
13
+ Dim name, name2 as String '分かりやすいように名前変数を足しました
14
+
14
15
  k = Range("A1").End(xlDown).Row
15
16
 
16
17
  '下側から順番に走査する

3

バグ修正

2017/07/07 22:15

投稿

退会済みユーザー
answer CHANGED
@@ -10,24 +10,26 @@
10
10
  Dim k, i, i2 As Long
11
11
  Dim TMaxRow As Variant
12
12
  Dim start, start2, ennd, ennd2 As Date
13
-
13
+ Dim name, name2 as String
14
14
  k = Range("A1").End(xlDown).Row
15
15
 
16
16
  '下側から順番に走査する
17
17
  For i = k To 2 Step -1
18
- '「比較元」の日付
18
+ '「比較元」のデータ
19
+ name = Cells(i, 1)
19
- start = Cells(i, "B") + Cells(i, "C")
20
+ start = Cells(i, 2) + Cells(i, 3)
20
- ennd = Cells(i, "D") + Cells(i, "E")
21
+ ennd = Cells(i, 4) + Cells(i, 5)
21
-
22
+
22
23
  'iの1つ上を起点に、下から順番に走査する
23
24
  '(i2を2行目まで走査してしまうと、i=i2の時に初めの行まで消されてしまうので注意です。)
24
25
  For i2 = k - 1 To 3 Step -1
25
- '「比較先」の日付
26
+ '「比較先」のデータ
27
+ name2 = Cells(i2, 1)
26
- start2 = Cells(i - i2, "B") + Cells(i - i2, "C")
28
+ start2 = Cells(i2, 2) + Cells(i2, 3)
27
- ennd2 = Cells(i - i2, "D") + Cells(i - i2, "E")
29
+ ennd2 = Cells(i2, 4) + Cells(i2, 5)
28
30
 
29
31
  '名前が同じかつ、時間が同じとき
30
- If Cells(i, 1) = Cells(i2, 1) And start = start2 And ennd = ennd2 Then
32
+ If name = name2 And start = start2 And ennd = ennd2 Then
31
33
 
32
34
  '重複している行のうち、上側のものを削除
33
35
  Rows(i2).Delete

2

コード内のコメント修正

2017/07/07 22:12

投稿

退会済みユーザー
answer CHANGED
@@ -19,8 +19,8 @@
19
19
  start = Cells(i, "B") + Cells(i, "C")
20
20
  ennd = Cells(i, "D") + Cells(i, "E")
21
21
 
22
- 'iの1つ上を起点に、下から順番に走査する(2行目まで検索してしまうと、
22
+ 'iの1つ上を起点に、下から順番に走査する
23
- 'i=i2の時に初めの行まで消されてしまうので注意です。)
23
+ '(i2を2行目まで走査してしまうと、i=i2の時に初めの行まで消されてしまうので注意です。)
24
24
  For i2 = k - 1 To 3 Step -1
25
25
  '「比較先」の日付
26
26
  start2 = Cells(i - i2, "B") + Cells(i - i2, "C")

1

誤植修正

2017/07/07 22:08

投稿

退会済みユーザー
answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ・次からはインデントをつけるようにしてくださいね。
4
4
  ・なるべくGotoを使うのは避けましょう
5
- ・cellでは、`cell(1,1)`のように、数字でアドレスをしています。
5
+ ・cellでは、`cell(1,1)`のように、数字でアドレスを指定します。
6
6
  →rangeでは、`range(A1)`のように、英字+数字の名前を使う時にはRangeを使ってください。
7
7
 
8
8
  ```VBA