エクセル作業をしている時、表に罫線を引きますよね。
でも罫線を手動で引くのは、手間も時間もかかるので大変ですよね。
そこで今回は、VBAを使って選択した範囲に自動で罫線を引く方法を解説していきます。
【VBAマクロ】選択した範囲に自動で罫線を引く方法を解説
VBAを使って選択した範囲に自動で罫線を引く方法は、以下のとおりです。
Sub AddBordersToSelection()
' 手動で罫線を引きたい範囲を選択してからマクロを実行する
Dim rng As Range
Set rng = Selection
' 罫線を引き、外側は太線にする
With rng
.Borders.LineStyle = xlContinuous
.BorderAround Weight:=xlThick
' 表の列数を計算する
Dim numColumns As Long
numColumns = .Columns.Count
' 1行目(ヘッダー行)と2行目の間の線は二重線にする
.Rows(1).Borders(xlEdgeBottom).LineStyle = xlDouble
' 1行目(ヘッダー行)は中央揃えにする
.Rows(1).HorizontalAlignment = xlCenter
End With
End Sub
このマクロを実行すると、以下のような罫線を引くことができます。
このマクロを使う時は、事前に手動で罫線を引きたい範囲を選択してから、マクロを実行してください。
選択した範囲に罫線を引き、ヘッダー行を中央揃えにし、ヘッダー行とデータ行の間に二重線を引くことができます。
このコードをアドイン設定しておくと、作業性がさらにアップするのでぜひ試してみてください。
選択している範囲を取得する
このVBAコードのセクションでは、rng
という名前のRangeオブジェクト変数を宣言し、現在選択されているセル範囲をその変数に設定しています。
Dim rng As Range
:rng
という名前のRangeオブジェクト変数を宣言します。この変数は、セル範囲を格納するために使用されます。Set rng = Selection
:現在選択されているセル範囲(ユーザーが手動で選択した範囲)をrng
変数に設定します。これにより、選択されたセル範囲に対して後続の操作を行うことができます
このコードセクションは、選択されたセル範囲を取得し、それに対して処理を行うための準備をしています。
rng
変数に選択されたセル範囲が格納された後、この範囲に対して後続の操作が行われます。
表の列数を計算する
このVBAコードのセクションでは、選択されたセル範囲(rng
変数に格納されている範囲)内の列数を計算し、numColumns
という名前のLong型変数にその値を格納しています。
Dim numColumns As Long
:numColumns
という名前のLong型変数を宣言します。この変数は、選択された範囲の列数を格納するために使用されます。numColumns = .Columns.Count
:Columns
プロパティを使用して、選択された範囲(rng
変数に格納されている範囲)の列数を取得し、それをnumColumns
変数に格納します。このコード行がWith rng
ブロック内にあるため、.
(ピリオド)がrng
を参照しています。
このコードセクションは、選択されたセル範囲の列数を取得し、それをnumColumns
変数に格納しています。
その後、この変数を使用して、選択された範囲の列に対して操作を行うことができます。
罫線を引く
このVBAコードのセクションでは、選択されたセル範囲(rng
変数に格納されている範囲)の1行目(ヘッダー行)に対して、以下の2つの操作を行っています。
- ヘッダー行と2行目の間の罫線を二重線にする。
- ヘッダー行のセルを中央揃えにする。
.Rows(1).Borders(xlEdgeBottom).LineStyle = xlDouble
:選択された範囲の1行目(ヘッダー行)の下端(xlEdgeBottom
)の罫線スタイルを二重線(xlDouble
)に設定しています。このコード行がWith rng
ブロック内にあるため、.
(ピリオド)がrng
を参照しています。.Rows(1).HorizontalAlignment = xlCenter
:選択された範囲の1行目(ヘッダー行)のセルの水平方向の配置を中央揃え(xlCenter
)に設定しています。このコード行もWith rng
ブロック内にあるため、.
(ピリオド)がrng
を参照しています。
このコードセクションは、選択されたセル範囲のヘッダー行に対して、罫線のスタイルを変更し、セルの配置を中央揃えに設定することで、表の見た目を整えることができます。
コメント