こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!
突然ですが、「新しいデータが来るたびに罫線を直している気がする……」そんなふうに感じること、ありませんか?
自分で引くのってけっこう面倒なんですよね。
今日は、「一瞬で表に罫線を引く(そして消す)」VBAをご紹介します。
コピペでOK!コード集
それでは、実際に現場で使っているコードを見てみましょう。VBE(コードを書く画面)を開いて、貼り付けてみてください。
基本編:データがある範囲全体に「格子」を引く
一番よく使う形です。
Sub DrawBorders_Basic()
' データがある範囲(A1セルを含むかたまり)全体に実線を引く
Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
MsgBox "線を引きました。", vbInformation
End Sub
応用編:外枠は「太く」、中身は「細く」
これだけで資料の見た目がプロっぽくなります。「仕事が丁寧だね」と言われるテクニックですが、手動やるのはちょっと手間なんですよね。
Sub DrawBorders_Pro()
Dim rng As Range
Set rng = Range("A1").CurrentRegion ' 範囲を変数に入れる
' いったん全ての線を消す(リセット)
rng.Borders.LineStyle = xlNone
' 1. 内側に細い点線を引く
rng.Borders(xlInsideHorizontal).LineStyle = xlHairline
rng.Borders(xlInsideVertical).LineStyle = xlHairline
' 2. 外枠を実線の中太にする
rng.BorderAround Weight:=xlMedium
MsgBox "表ができました!", vbInformation
End Sub
リセット編:線をすべて消す
先ほど登場しましたが、やり直したいときや、データをクリアするときに使います。
Sub ClearBorders()
' A1を含むデータ範囲の線をすべて消す
Range("A1").CurrentRegion.Borders.LineStyle = xlNone
End Sub
知っておくと便利な「線の種類」
コードの中にある LineStyle の後ろを変えるだけで、線の種類を自由自在に変えられます。
- xlContinuous : 実線(いつものやつ)
- xlDot : 点線(……)
- xlDash : 破線(- – – -)
- xlDouble : 二重線(======)
これで罫線を引いたり、消したりする作業も自動化しちゃいましょう!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。
リンク
リンク

コメント