初心者から実務利用者まで
わかりやすいVBA解説サイト
コラム

マクロの記録で罫線を引いた時のコードを読みとく

 

罫線を引く時に

VBAの構文を打たずに

マクロの記録で
出てきたコードを

コピーペーストする方は
結構いらっしゃるかと思います。

 

ためしに

 

A1セルからA5セルまで
罫線を引いて
マクロの記録をしてみると

 

こんなコードが
出てきますが

 

どうみても

 

呪文の様で

これだけ
アルファベットが
ずらっと並んでいると

パっと見で

 

脳が理解を拒否します。

 

しかし当然、この呪文にも
それぞれ意味があるので

 

今回はこの中身を
解読してみたいと思います。

 

もちろん

 

暗記して書けたり
する必要はありません。

ただ、こういうことを
知っていると
知らないのでは

 

どこかで役立つ!

 

…かもしれないとか
そんなレベルの話です。

 

整理して順番に解説を
していきますので

 

ご興味のある方は
お付き合いください。

 

まずは

 

少し話を
簡単にするため

先ほどのコードを
ブロックでわけて
冒頭だけ抜き出します。

それが下のものです。

 

 

①は

 

A1~A5セルを
選択したときのものです。

 

②、③は

 

殆ど同じで
一部が違うだけです。

 

xlDiagonalDown

xlDiagonalUp

 

xlはVBA専用の定数に
全てついてくるので

以後は見えない事として
処理をします。

 

次に

 

Diagonalですが

これは対角線を
意味します。

 

そのため

 

xlDiagonalDown
右下さがりの対角線。

 

xlDiagonalUp
右上あがりの対角線です。

 

Selection.Borders
LineStyle = xlNone

また後で出てくるので
一旦おいておきます。

 

 

そして

 

残りはコードを
よく見ると

6ブロック
ほぼすべて同じ事が
書いてあり

違うのは
ごく一部です。

 

 

赤く囲んだ部分は

 

先ほど紹介した
DiagonalUp等と
同じように

線を引く場所を
表しています。

 

全てが

 

xl Edge xxx

 

という構成ですが

 

xlはVBA専用の定数。

Edgeは周辺の~という意味があり

 

= Top

= Right

= Left

= Bottom

 

そこに場所が
組み合わさっています。

 

 

あとふたつ

 

xl Inside InsideVertical

xl Inside InsideHorizontal

 

というものが
ありますが

 

inside = 内側

Vertical = 垂直

Horizontal = 水平

 

を、表しています。

 

 

最後に残ったのが

 

Withステートメントで
表された下記の4つです。

 

 

罫線は

 

Borderオブジェクト
というものなのですが

セルの左側に線を
引くマクロの記録のコードは
こちらで

 

Selection.Borders(xlEdgeTop) 

 

これに対して
追加のサイドメニューを

トッピングしていく形で
どんな線を引くかを
注文していきます。

 

まずは

 

LineStyleプロパティです。

 

これは線の種類
選ぶもので

 

いくつか例をあげると
この様になっています。

 

そして

 

ColoeIndex

が、線の色。

 

TintandShade

が、色の明暗の調整です。

 

最後に

 

Weight

が、線の太さです。

 

 

マクロの記録で
選ばれるのは

Thin です。

 

あまり聞きなれない
単語ですが

「厚みのない」とか
そんな意味がある様です。

 

以上が

 

罫線を引いた時の
マクロの記録のコードの
全てです。

 

それではここで
もう一度あの
呪文を見てみましょう。

 

 

いかがでしょうか

 

落ち着いて
一つずつ分解して読むと

最初見たときよりも
内容がわかるのでは
ないでしょうか。

 

最後に

 

この呪文は
もともとこの罫線を

引くための
ものでした。

 

 

それだけであんなに
大がかりなコードを
書いていたわけですが

 

実はまったく同じ
動きを

たった1行で

表現できます。

 

それがこちらです。

 

Range(“A1:A5”).Borders.LineStyle = True

 

比べると最初の呪文は
一体なんだったのかと
びっくりしてしまいます。

これを知っておけば
罫線を引くたびに

いちいちマクロの記録をして~

…といった作業から
解放されます。