VBAで罫線の斜線が引けた!ついでに消せた!

 

( ノ゚Д゚)こんばんは、こんにちは、おはようございます。おやすみなさい! とっちーです。

 

本日は、ExcelのVBAで罫線を引くのご紹介です、楽しくお話をしたい!と思います。

 

 

 

 

ホームタブのなかの罫線コマンドでいいんじゃない!

 

はい、なれている方なら、そのほうが良いかと考えます。

 

この方法は、何度も同じ位置の罫線が破壊され何回も修繕を尽くして、最後には、疲れ果てもう直さなくてもいいかなって思ってしまった作成者用の気持ちになって作ってみたものです。

 

確かに見た目の問題ですが、見た目は大事です。

 

(はてな君)
見た目は大事なの?

 

(えっちゃん)
はいとても大事です!

 

 

 

罫線を引く構文の基本

 

変数を宣言する!物語りの役柄を決定している

 

Dim 変数  As 型(型式)と記述しましょう。

映画を撮影するときのイメージで創造すると。

型(型式)は、映画撮影の役柄とでもしておきましょう。

 

Dimは変数さんに、あなたは何々の型の役ですよって、お願いしてくる助監督さんかな。

Asは、ADさんとでもしておきましょう。覚えてください。

 

ちなみにDim 変数 As 型、変数 As 型、変数 As 型って大部屋みたいに「、」で区切って記述しても大丈夫です。

 

ただ、売れっ子さんは、個室がいいかもしれないので。

大役(よく使う型)はなるべく、一部屋にしたほうが見栄えがいいです。

 

型(型式)に記述する!Borderというオブジェクト

 

Borderという型(型式)は、1セルの上下左右のどこか一箇所に罫線を引く役なのです。(どこか一辺の罫線を使用したいときに)

Dim 変数 As Borderと宣言しましょう。

 

型(型式)に記述する!Bordersというコレクション

 

Bordersという型(型式)は、1セルの上下左右のすべてに罫線を引く役なのです。(囲み罫線を使用したいときに)

Dim 変数 As Bordersと宣言しましょう。

 

プログラムを記述してみよう

 

今回、無くても作成できるんだけど便利なものは、一緒にってことで。今回Setを使用します

Setは、なにをするの?

 

Setを使えるのは、オブジェクト型で定義される物(宣言文でオブジェクト変数に宣言したものにオブジェクトを移すとき)に活用します。

 

特にオブジェクト名WorksheetやRangeなどが主に使用されます

今回は、Set 変数(Border またはBordersで宣言した変数)=セル番地.Borders(定数or値)で活用します。

以下のSetの説明です。

 

Set 変数 =Range(Cells(4, 13), Cells(30, 13)).Borders(7)

上記記述で定めたRange(Cells(4, 13), Cells(30, 13))の場所に.Borders(7)は、線の種類の7番目で線を引きましょうと7を記述します。(セルの種類は、セルのどの部分に罫線を引くか、定数名の種類と値、ライン場所の説明へ記述しています。)

 

Set文で指定された変数に他のお願いをする場合

 

Bordersコレクションには、変数.LineStyle = 値や変数.Weight及び色指定の変数.Color or 変数.ColorIndexプロパティがあります。

 

記述方法

Set 変数 =Range(Cells(4, 13), Cells(30, 13)).Borders(7)

変数.LineStyle =

変数.Weight =

変数.ColorIndex =

上記のように記述すると罫線のスタイル、太さ、色が指定できます。

 

セルのどの部分に罫線を引く?定数名の種類と値ライン場所の説明

 

オブジェクト名.Borders(定数名)が、形式。

Bordersは、プロパティにあたります。

 

Set 変数 =Range(Cells(4, 13), Cells(30, 13)).Borders(7)

変数.LineStyle =

変数.Weight =

変数.ColorIndex =

赤字の値の数値もしくは定数名を記述することでラインの場所が指定されます。

 

定数名 セルのどの場所にラインを引くのか
xlEdgeTop 8 上端の横線
xlEdgeBottom 9 下端の横線
xlEdgeLeft 7 左端の縦線
xlEdgeRight 10 右端の縦線
xlDiagonalDown 5 左上から右下ななめ線
xlDiagonalUp 6 右上から左下ななめ線
xlInsideHorizontal 12 選択範囲の間の内側の横線
xlInsideVertical 11 選択範囲の間の内側の縦線

 

罫線のスタイルの定数名と値!ラインのスタイルの説明

 

オブジェクト名.LineStyle=定数名

Set 変数 =Range(Cells(4, 13), Cells(30, 13)).Borders(7)

変数.LineStyle =この部分に定数名か値を記述

 

定数名 ラインのスタイル
xlContinuous 1 実線
xlDot -4118 点線
xlDash -4115 破線
xlDashDot 4 一点鎖線
xlDashDotDot 5 ニ点鎖線
xlDouble -4119 本線
xlSlantDashDot 13 斜破線
xlLineStyleNone -4142 線なし

 

罫線の太さの定数名と値!ラインの太さの説明

 

オブジェクト名.Weight=定数名

Set 変数 =Range(Cells(4, 13), Cells(30, 13)).Borders(7)

変数.LineStyle =この部分に定数名か値を記述

変数.Weightこの部分に定数名か値を記述

 

定数名 太さの説明
xlHairline 1 極細
xlThin 2 細め
xlMedium -4138 普通
xlThick 4 太め

 

罫線の色の説明

 

オブジェクト名.ColorIndex=値

Set 変数 =Range(Cells(4, 13), Cells(30, 13)).Borders(7)

変数.LineStyle =この部分に定数名か値を記述

変数.Weight=この部分に定数名か値を記述

変数.ColorIndex =この部分にを記述

 

値の部分に1~56の数字を記述すると上図の数字の上側の色になります。

 

ちなみに

色の設定方法には、

オブジェクト名.Color=値(16進数)や

オブジェクト名.Color=RGB(000,000,000)の記述方法もあります。

 

BorderAroundを使用する

 

BorderAroundは、メソッドにあたります。

オブジェクト名.BorderAround  ( LineStyle:=定数OR値, Weight:=定数OR値, ColorIndex:=定数OR値, Color:=定数OR値, ThemeColor:=定数OR値 ) になります。

形式の、定数と値をそれぞれ上記の定数と値と同じなので、後は:=の後に指定するだけです。

 

罫線のプロシージャを作成してみました

 

(はてな君)
どうなるの?

 

(えっちゃん)
見ててごらん!

 

 

 
 
(はてな君)
どうやって、したの?
 
 
 
 
(えっちゃん)
プログラムを記述したボタンを押すと罫線を引くようにしているのさ。
 

 

(はてな君)
そのプログラムって?

 

(えっちゃん)
それは、下記に記述しておくよ。

 

 

 

コードをコピーされたい場合は下記の記事を参考にしてください。

関連記事

 

 

まとめ

 

 

今回は、ExcelのVBAで罫線を引く方法についてお話してみました。

VBAで引かなくてもダイアログで引けるじゃんって思ったあなた、そのとおりです。

ただ、同じ罫線を少しでも手間無く引くためにはVBAを利用したほうがいいかなって思いまして、お伝えしてみました。

 

罫線は見た目ですが、作成者からしたら壊されたときに瞬時に治せるほうがメンタル的にも幸せです。今日もあわてず一つ一つ使用方法の確認をしながら作成をしましょう。

 

今日も安心してプロシージャを作成できるように

そんな、お手伝いが出来ることを願っています。

 

 

楽しくお仕事できたらなって。そう思っていただけたら幸せです。

 

ま、何でも楽しくしていただけたら、うれしいです。ものすごく。

 

 

 

スポンサーリンク