【Excelマクロ】大項目、中項目、小項目と分かれている表の罫線を一発で引くマクロ

テーマは罫線を簡単に引くマクロ Excelの話

Excelで大項目、中項目、小項目と項目が枝分かれする表に罫線を引くのは意外と面倒ですよね。しかし、マクロを使えば簡単に罫線を引くことができます。今回は、Excelのマクロを使って簡単に罫線を引く方法をご紹介します。

罫線を引くのは意外と手間で面倒くさい

大項目、中項目、小項目と別れた表でセルの結合をしていない場合、罫線を引くのは非常に面倒です。

罫線を引きたい表と引いた結果のExcelの表
こんな風に罫線を引きたいですが手作業だと意外と面倒です

手作業で罫線を引こうと思うと、大項目、中項目ごとにそれぞれ手作業で引いていく必要があります。

セルの結合をしていれば、格子(田の字)で罫線を引くことで一発で線が引けますが、セルの結合をしていない場合にはそうはいきません。

セルを結合している場合の表
セルを結合していれば格子で罫線を引けば一発で線が引けます

そういうわけで、マクロで一発で対応できるようにしていきましょう。

たった数行のマクロで罫線を引くことが可能

やりたいことは、表の範囲を選択した状態でマクロを起動すると以下のような動作をさせます。

  • 選択した範囲に格子(田の字)で全部線を引く
  • それぞれのセルについて、空白の場合はセルの上の罫線を消す
Excelのマクロでやりたい罫線を引く手順

これで大項目、中項目、小項目と綺麗に罫線が引くことができます。

その手順を実行するマクロのコードです。

Sub border_line()

Dim c As Range

'選択範囲に罫線を格子で引く
Selection.Borders.LineStyle = True

'選択した各セルでセルの値が空白の場合はセルの上の罫線を消す
For Each c In Selection
 If c.Value = "" Then
  c.Borders(xlEdgeTop).LineStyle = xlLineStyleNone
 End If
Next

End Sub

6行目で、選択範囲での「.Borders.LineStyle」プロパティを Trueにしてセルの上下左右すべてに罫線を引きます。

10行目のIf~でセルの値が空白の場合は、11行目でそのセルの上の罫線(「Borders(xlEdgeTop)」)を「xlLineStyleNone」として罫線なしを指定して罫線を消しています。

セルの結合はしたくない、手作業で罫線を引くのは面倒というときにこのマクロがあれば、ぱっと罫線が入れられるので便利です。

コメント

タイトルとURLをコピーしました