【本日のミッション】
Excel VBAにて、表全体に格子の罫線を簡単に引け。
また、それらの罫線を解除せよ。
ミッションの概要
下記罫線の設定が全くされていない状態の表全体に、罫線を引く・解除するミッションです。
罫線を引くVBAのコードは1行です。
せっかくなので、細線・極細線・2本線・色線・罫線解除の5パターンを作ってみましょう。
今回は気象庁 過去の気象データを使用させて頂きました。
プロシージャ
Sub 表全体に格子罫線_細線() Range("A1:D13").Borders.Weight = xlThin End Sub
Sub 表全体に格子罫線_極細線() Range("A1:D13").Borders.Weight = xlHairline End Sub
Sub 表全体に格子罫線_2本線() Range("A1:D13").Borders.LineStyle = xlDouble End Sub
Sub 表全体に格子罫線_色線() Range("A1:D13").Borders.ColorIndex = 3 '赤色 End Sub
Sub 表全体罫線解除() Range("A1:D13").Borders.LineStyle = False End Sub
記入したプロシージャ(Sub~End Subまで)のどこかにカーソルを置いてF5キーをクリックしてください。
Excelのシートを見てください。
指定した表に、指定した罫線が引けましたね。
【表全体に格子罫線_細線】
【表全体に格子罫線_極細線】
【表全体に格子罫線_2本線】
【表全体に格子罫線_色線】
【表全体罫線解除】
罫線の設定された状態からこのマクロを実行すると、罫線の無い元の状態の表に戻ります。
表全体に罫線を設定するのは簡単
Excel VBA の罫線設定項目はたくさんあります。凝った表を作るにはそれらの設定は有効なのでしょうが、簡単な表には細かい設定は必要ありません。
罫線の設定にはBordersコレクションを使用します。
指定したい線の場所によって使い分けますが、表全体に同じ罫線を設定するには「Borders」だけでいいのです。
オブジェクト | 対罫線 |
---|---|
Borders | 上・右・下・左・内側水平・内側垂直 |
Borders(xlEdgeTop) | 上側の罫線 |
Borders(xlEdgeRight) | 右側の罫線 |
Borders(xlEdgeBottom) | 下側の罫線 |
Borders(xlEdgeLeft) | 左側の罫線 |
Borders(xlInsideHorizontal) | 内側水平(横線) |
Borders(xlInsideVertical) | 内側垂直(縦線) |
Borders(xlDiagonalDown) | 左上から右下の斜め線 |
Borders(xlDiagonalUp) | 左下から右上の斜め線 |
罫線の種類のプロパティ
表全体に1種類の罫線を指定するのであれば、これだけでOK。
この時、線の太さ(Weight)には規定値の「xlThin」(細線)が設定されます。
Sub 表全体に格子罫線_2本線()
Range("A1:D13").Borders.LineStyle = xlDouble
End Sub
赤字部分を、指定したい罫線の種類(下記参照)に変更してください。
プロパティ | 定数 | 説明 |
---|---|---|
LineStyle | xlNone またはxlLineStyleNone | 線なし |
xlContinuous | 実線 | |
xlDash | 破線 | |
xlDashDot | 一点鎖線 | |
xlDashDotDot | 二点鎖線 | |
xlDot | 点線 | |
xlSlantDashDot | 斜め破線 | |
xlDouble | 2本線 | |
xlLineStyleNone | 線なし |
罫線の太さのプロパティ
表全体に1種類の太さの罫線を指定するのであれば、これだけでOK。
この時、線の種類(LineStyle)には規定値の「xlContinuous」(実践)が設定されます。
Sub Sub 表全体に格子罫線_極細線()
Range("A1:D13").Borders.Weight = xlHairline
End Sub
赤字部分を、指定したい罫線の太さ(下記参照)に変更してください。
プロパティ | 定数 | 説明 |
---|---|---|
Weight | xlHairline | 極細 (最も細い罫線) |
xlThin | 細線 | |
xlMedium | 普通 | |
xlThick | 太線 |
罫線の色のプロパティ
表全体に1色の罫線を指定するのであれば、これだけでOK。
この時、線の太さ(Weight)には規定値の「xlThin」(細線)、線の種類(LineStyle)には規定値の「xlContinuous」(実践)が設定されます。
Sub 表全体に格子罫線_色線()
Range("A1:D13").Borders.ColorIndex = 3 '赤色
End Sub
赤字部分を、指定したいカラーパレットのインデックス値に変更してください。
プロパティ | 定数 | 説明 |
---|---|---|
ColorIndex | 1~56の整数値 | カラーパレットのインデックス値 |
罫線の解除
罫線の解除には「LineStyle = False」でOKです。
Sub 表全体罫線解除() Range("A1:D13").Borders.LineStyle = False End Sub
ただしこの方法の場合、罫線を解除する範囲の外側に罫線があると、外側の罫線は残りますのでご注意さい。
Sub 表の一部罫線解除() Range("B5:C8").Borders.LineStyle = False End Sub
参考
Dictionary オブジェクト(連想配列) とは ビッグデータ高速処理を可能にする技 (Excel VBA)
セル範囲を一気に変数(配列)に入れる ~バリアント型(Variant)変数を配列として使用する~(Excel VBA)
重複しないユニークなリスト作成 ~Dictionaryオブジェクト(連想配列)を使う1~ (Excel VBA)
重複しないユニークなリスト作成 ~Dictionaryオブジェクト(連想配列)を使う2~ (Excel VBA)
Dictionary(連想配列)オブジェクト CreateObject関数を使う方法・ 参照設定を使う方法 違いを理解してエラー防止(Excel VBA)
表全体に格子罫線を簡単に引く・解除する(Excel VBA)