Excel。マクロで罫線を記録して作ると不要な行だらけなので、Excel VBAでつくると楽
<Excel VBA>
なんで、Excel VBAを勉強したほうがいいのですか?というご質問があったりします。色々あるのですが、なんで、マクロの記録ではなくて、Excel VBAの構文を入力したほうがいいのか、そのうちの一つを紹介していきます。今回は、具体的に罫線で確認をしてみましょう。
Excel VBAを知らなくても、マクロの記録を使うことで、操作を記録することができます。Excel VBAに不慣れな人は、その方法で十分なのですが、範囲が変わるなど、修正が発生すると、マクロの記録では、不便なケースがあります。
このため、マクロの記録ではなくて、直接、Excel VBAで作る方がいいよといわれるわけです。
【マクロの記録で罫線】
次の表があります。マクロの記録を使って罫線を引くExcel VBAを作っていきます。
開発タブの「マクロの記録」をクリックします。
マクロの記録ダイアログボックスが表示されますので、今回は、「罫線マクロの記録」というマクロ名で作成します。
OKボタンをクリックすると、記録がスタートしますので、単純な格子の罫線を引いていきます。
操作が終了したら、マクロの終了ボタンをクリックして、記録を止めます。
このように罫線が引けていますが、Excel VBAはどのように書かれたのか確認してみましょう。
Sub 罫線マクロの記録()
Range("A1:C6").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
確認すると、Webサイトを作るときにCSSというファイルを作るのですが、それと同じ考え方で、左・上・下・右・垂直・水平をそれぞれ設定しているだけです。
ただ、「見なかったことにする」なんて人もいそうですね。
非常にわかりにくい…
そこで、Excel VBAで直接構文を作ると、数行で作ることができます。
Sub 罫線ExcelVBA()
Range("a1").CurrentRegion.Borders.LineStyle = True
End Sub
たったこれだけです。実質。一行です。
では、実行してみましょう。
同じように罫線が引けました。
このようにマクロの記録では、不要な行で溢れている場合があるので、修正する場合など効率が悪化する可能性があります。
では、説明をしておきましょう。
Range("a1").CurrentRegion.Borders.LineStyle = True
A1を起点として、CurrentRegionは、隣接するセルの範囲、つまり、表ということです。
そして、Borders.LineStyle = True
Bordersは、罫線ということですね。
LineStyleは線種を意味しています。
TrueはONだと思ってもらえればわかりやすいかと思います。
これで、表の四辺に罫線を表示することができます。
ちなみに、Falseと入力すると、罫線を消すことができます。
なお、線種や色、そして太さを変更したい場合は、その指示を与える必要がありますが、講師の罫線だけでしたら、たった一行だけで、OKなわけです。