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

回答編集履歴

1

コード追記

2020/08/22 07:21

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -21,4 +21,38 @@
21
21
  End Sub
22
22
  ```
23
23
 
24
- ただし、Rangeの引数は最大255字までという制限があるので、それを超える時は、その前で罫線を引いて、また、次の行から始めるという処理が必要になります。
24
+ ただし、Rangeの引数は最大255字までという制限があるので、それを超える時は、その前で罫線を引いて、また、次の行から始めるという処理が必要になります。
25
+
26
+
27
+ ---
28
+ 255文字制限の対処済みコードです。
29
+
30
+ ```vba
31
+ Sub Sample2()
32
+ Dim targetRng As Range
33
+ Set targetRng = ActiveSheet.Range("A5").CurrentRegion
34
+
35
+ Dim rw As Range, ubo As String
36
+ For Each rw In targetRng.Columns(1).Cells
37
+ If rw.Value <> rw.Offset(1).Value Then
38
+ Dim ad As String
39
+ ad = "," & rw.Resize(, 3).Address(False, False)
40
+ If Len(ubo) + Len(ad) <= 255 Then
41
+ ubo = ubo & ad
42
+ Else
43
+ Debug.Print ubo
44
+ Call DrowBorder(ubo)
45
+ ubo = ad
46
+ End If
47
+ End If
48
+ Next
49
+ If ubo = "" Then Exit Sub
50
+ Call DrowBorder(ubo)
51
+ End Sub
52
+
53
+ Sub DrowBorder(ubo As String)
54
+ ubo = Mid(ubo, 2) '先頭のカンマ(,)を削除
55
+ Range(ubo).Borders(xlEdgeBottom).LineStyle = xlContinuous
56
+ End Sub
57
+
58
+ ```