罫線を引くVBA(マクロ)

スポンサーリンク

罫線を引くVBA(マクロ)

Excel(エクセル)のワークシートで表を作って作業していると線が消えたり、変になったりすることがありますよね?マクロ(VBA)をファイルの中に作っておくとずれてしまった罫線を瞬時に元通りにすることが可能です。今回はマクロ機能で作成される罫線を引くVBAコードと罫線を引くVBAコードの修正方法をお伝えします。

罫線を引くマクロの記録

15-001

上の画像のような罫線を引く過程をマクロで記録すると以下のコードが記録されます。とても長くてわかりにくいですが、マクロ機能ではムダなコードも記録されているので、きちんと整理するとかなり見やすいコードになります。

Sub Macro1()

Range(“C4:K20”).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

罫線を引くマクロの解説

選択している範囲に対して罫線を引く場合、マクロには以下の情報が設定されます。
各条件はWithステートメントを用いて一括りになっています。(①で選択した範囲)

①対象範囲のどの部分に線を引くか

[範囲].Borders(xlEdgeLeft):[範囲]の左側
[範囲].Borders(xlEdgeRight):[範囲]の右側
[範囲].Borders(xlEdgeTop):[範囲]の上側
[範囲].Borders(xlEdgeBottom):[範囲]の下側
[範囲].Borders(xlInsideHorizontal):範囲の中にあるセルの横の区切り線
[範囲].Borders(xlInsideVertical):範囲の中にあるセルの縦の区切り線
[範囲].Borders(xlDiagonalDown):範囲内のセルに対して左上から右下に引く罫線
[範囲].Borders(xlDiagonalUp):範囲内のセルに対して左下から右上に引く罫線

②罫線の種類(点線、実線など)

[①で示した場所].LineStyle = xlContinuous:①で示した場所に引く線を連続線(実線)とする。
[①で示した場所].LineStyle = xlDot:①で示した場所に引く線を点線とする。
などになります。

線を消す場合は
[①で示した場所].LineStyle = xlNoneとなります。

③罫線の色

[①で示した場所].ColorIndex = 0:①で示した場所に引く線の色を黒にする。
黒でよい場合は0で表すか、記述がなくても大丈夫です。

④罫線の色の明るさ

[①で示した場所].TintAndShade = 0:①で示した場所に引く線の明るさは標準にする。
-1,0,1のいずれかで表します。
あまり使用しないので、こだわりがないときは0に設定するかもしくはこの行を記載しなくても大丈夫です。

⑤罫線の色の太さ

[①で示した場所].Weight = xlThin:①で示した場所に引く線の太さは「細め」にする。
[①で示した場所].Weight = xlMedium:①で示した場所に引く線の太さは「太線」にする。
細線にしたい場合は記載しなくても大丈夫です。

余分な行の削除と整理

慣れていないとWithでくくられた範囲が何を示しているのかわかりにくいですが、実はすごくシンプルにできます。
線を引く際の標準の設定は線の種類は「直線」で「黒」で「細い線」です。
このままの設定でよければ上記のコードは以下のように省略して記載できます。

Sub Macro1()

Range(“C4:K20”).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Selection.Borders(xlInsideVertical).LineStyle = xlContinuous
Selection.Borders(xlInsideHorizontal).LineStyle = xlContinuous

End Sub

また上下左右と範囲内のセルの区切り位置全てに同じ種類の線を入れる場合は(xl~~)の部分を記載しないことで一くくりに記述できます。

Sub Macro1()

Range(“C4:K20”).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders.LineStyle = xlContinuous

End Sub

これですごくシンプルになりました。線の種類を変えたりする場合はその部分だけ後で記載しても良いです。
あと~Select Selection~は時間がかかる元になるので、私は通常範囲を直接指定します。

Sub Macro1()

With Range(“C4:K20”)
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders.LineStyle = xlContinuous
End With

End Sub

変数を用いて連続で罫線を修正する場合は以下のようにしておくと便利です。

Sub Macro1()

With Range(Cells(4,3),Cells(20,11))
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders.LineStyle = xlContinuous
End With

End Sub

このRange(Cells(4,3),Cells(20,11))の数字部分を変数に置き換えることでセルの中に文字が入っている限り繰り返し罫線を引くことが可能です。
組み合わせて、今使っている表の罫線を修正することができます。

おすすめ書籍 amazonicon Amazon rakutenicon 楽天 Yahooicon Yahoo検索
amazoniconAmazon
rakutenicon楽天Kobo電子書籍ストア
続 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本【電子書籍】[ 立山秀利 ]
価格:2,527
rakutenicon楽天ブックス
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本(続) 最初からそう教えてくれればいいのに! Excel [ 立山秀利 ]
価格:2,808
rakuteniconbookfan 2号店 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本/立山秀利【1000円以上送料無料】
価格:2,376
rakutenicon楽天ブックス
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! Excel [ 立山秀利 ]
価格:2,376
rakuteniconHMV&BOOKS online 1号店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに!Excel2007 / 2003対応 / 立山秀利 【本】
価格:2,376
rakuteniconブックオフオンライン楽天市場店
【中古】 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに!Excel2007/2003対応 /立山秀利【著 【中古】afb
価格:1,320
rakuteniconKSC
『中古』続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本
価格:6,989
rakutenicon楽天Kobo電子書籍ストア
デバッグ力でスキルアップ! Excel VBAのプログラミングのツボとコツがゼッタイにわかる本【電子書籍】[ 立山秀利 ]
価格:2,236
rakuteniconぐるぐる王国DS 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
rakuteniconぐるぐる王国 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
rakuteniconネットショップ駿河屋 楽天市場店
【中古】単行本(実用) ≪コンピュータ≫ Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 / 立山秀利【中古】afb
価格:1,570
rakuteniconECJOY!プレミアム楽天市場店
秀和システム Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! 立山秀利/著
価格:2,376
rakuteniconクロネコ書店
【中古】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本—最初からそう教えてくれればいいのに!Excel2007/2003対応【中古】
価格:3,330
rakuteniconコンプリートブックス
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
rakuteniconbookfan 1号店 楽天市場店
【店内全品5倍】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本/立山秀利【3000円以上送料無料】
価格:2,376
rakutenicon楽天Kobo電子書籍ストア
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本【電子書籍】[ 立山秀利 ]
価格:2,138
rakuteniconドラマ楽天市場店
【新品】【本】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 立山秀利/著
価格:2,376
rakutenicon楽天Kobo電子書籍ストア
続々 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本【電子書籍】[ 立山秀利 ]
価格:2,430
rakuteniconKSC
『中古』ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本
価格:6,468
rakuteniconKSC
『中古』続々ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本
価格:10,788
rakuteniconドラマ楽天市場店
【新品】【本】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 立山秀利/著
価格:2,808
rakuteniconbookfan 2号店 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続/立山秀利【1000円以上送料無料】
価格:2,808
rakuteniconbookfan 1号店 楽天市場店
【店内全品5倍】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続/立山秀利【3000円以上送料無料】
価格:2,808
rakuteniconぐるぐる王国DS 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
rakuteniconVALUE BOOKS
【ポイント 10倍】【中古】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! Excel 続 /秀和システム/立山秀利 (単行本)【年末 セール SALE 対象商品】
価格:758
rakuteniconVALUE BOOKS
【中古】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! Excel 続 /秀和システム/立山秀利 (単行本)【年末 セール SALE 対象商品】
価格:758
rakuteniconぐるぐる王国 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
rakuteniconECJOY!プレミアム楽天市場店
秀和システム Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 最初からそう教えてくれればいいのに! 立山秀利/著
価格:2,808
rakuteniconコンプリートブックス
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
rakuteniconブックオフオンライン楽天市場店
【中古】 続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! /立山秀利【著】 【中古】afb
価格:1,264
Yahooicon京都大垣書店Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 / 立山 秀利 著
価格:2,808
Yahooiconbookfanプレミアム
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 / 立山秀利
価格:2,808
Yahooiconbookfan Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続/立山秀利
価格:2,808
Yahooiconbookfanプレミアム
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 / 立山秀利
価格:2,376
Yahooiconbookfan Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本/立山秀利
価格:2,376
YahooiconHonya Club.com Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続/立山秀利
価格:2,808
Yahooiconぐるぐる王国 ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
YahooiconHMV&BOOKS online Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに!Excel2007 /
価格:2,376
Yahooiconぐるぐる王国 スタークラブ
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
Yahooiconぐるぐる王国2号館 ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
Yahooiconぐるぐる王国DS ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
Yahooiconぐるぐる王国 ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
Yahooiconぐるぐる王国 スタークラブ
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
Yahooiconぐるぐる王国2号館 ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
Yahooiconぐるぐる王国DS ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
Yahooiconドラマ書房Yahoo!店
新品本/Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 立山秀利/著
価格:2,808
YahooiconドラマYahoo!店
新品本/Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 立山秀利/著
価格:2,808
YahooiconWINDY BOOKS on line
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本  続
価格:2,808
Yahooiconドラマ書房Yahoo!店
新品本/Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 立山秀利/著
価格:2,376
YahooiconドラマYahoo!店
新品本/Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 立山秀利/著
価格:2,376

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする