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

回答編集履歴

1

コードの改善

2017/08/19 18:15

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -7,17 +7,18 @@
7
7
  Dim i As Long, R As Range
8
8
  With WS
9
9
  For i = 1 To .Cells(1, 1).CurrentRegion.Columns.Count
10
+ Set R = .Cells(3, i)
10
- If .Cells(3, i) <> "" Then
11
+ If R <> "" Then
11
- .Cells(3, i) = .Cells(1, i).MergeArea(1, 1) & "/" & _
12
+ R = R.Offset(-2).MergeArea(1, 1) & "/" & _
12
- .Cells(2, i).MergeArea(1, 1) & "/" & _
13
+ R.Offset(-1).MergeArea(1, 1) & "/" & _
13
- .Cells(3, i)
14
+ R
14
- ElseIf .Cells(3, i).MergeArea.Rows.Count = 2 Then
15
+ ElseIf R.MergeArea.Rows.Count = 2 Then
15
- .Cells(3, i).UnMerge
16
+ R.UnMerge
16
- .Cells(3, i) = .Cells(1, i).MergeArea(1, 1) & "/" & _
17
+ R = R.Offset(-2).MergeArea(1, 1) & "/" & _
17
- .Cells(2, i)
18
+ R.Offset(-1)
18
- ElseIf .Cells(3, i).MergeArea.Rows.Count = 3 Then
19
+ ElseIf R.MergeArea.Rows.Count = 3 Then
19
- .Cells(3, i).UnMerge
20
+ R.UnMerge
20
- .Cells(3, i) = .Cells(1, i).MergeArea(1, 1)
21
+ R = R.Offset(-2).MergeArea(1, 1)
21
22
  End If
22
23
  Next
23
24
  .Range("1:2").Delete