VBA 罫線で囲まれた範囲を取得する(田んぼRange)
こんにちは。
派犬事務員のコロ子です。
よくありがちなこんな表。
罫線で囲まれた表の外に自由に書き込みがされている。
表の中に空白行があるけど、区切りの意味があるらしく、勝手に削除できない。
この状態に手は加えず、表だけを取得したい。
UsedRange だと、枠の外も使用範囲が全部になってしまう。
Range("C3").CurrentRegion だと、連続している範囲になってしまう。
罫線で囲まれた範囲だけ取得する関数とかあっても良さそうだけどなー。
ないっぽいので自作してみよう。
Sub Test() 田んぼRange(Sheet1).Select End Sub Function 田んぼRange(ws As Worksheet) As Range Dim linRange As Range Dim ran As Range For Each ran In ws.UsedRange If ran.Borders.LineStyle = xlContinuous Then If linRange Is Nothing Then Set linRange = ran Else Set linRange = Union(linRange, ran) End If End If Next ran Set 田んぼRange = linRange End Function
枠全てに罫線が引かれているセルをUnion関数で繋げて範囲を取得する。
できた!
罫線で囲まれた範囲を田んぼRangeと命名しよう。
(ネーミングがダサい?でも分かりやすいでしょ!ちゃんとした名前あるのかな?)
田んぼRange、もしかしたらUsedRangeやCurrentRegionよりもニーズがあるかも!?