Excel VBAにてデータを出力する際にその周りに罫線を引いたり塗りつぶしたりするような場合がいろいろとあると思います。
今回はその中の罫線の引き方を説明していきたいと思います。
目次
1.罫線の設定方法
VBAで罫線を引く場合の記載方法は、
Range(セル範囲指定).Borders(罫線指定).プロパティ = 設定値
のような形式になります。
たとえば、
Range("C3").Borders(xlEdgeBottom).LineStyle = xlContinuous
とした場合には、C3セルの下線として実線が引かれます。
2.罫線指定の種類
記載方法に記載した中の「罫線指定」の内容としては以下のようなものがあります。
設定値 | 内容 |
---|---|
xlEdgeTop | セル範囲の上側の罫線 |
xlEdgeBottom | セル範囲の下側の罫線 |
xlEdgeLeft | セル範囲の左端の罫線 |
xlEdgeRight | セル範囲の右端の罫線 |
xlInsideHorizontal | セル範囲のすべてのセルの水平罫線 |
xlInsideVertical | セル範囲のすべてのセルの垂直罫線 |
xlDiagonalDown | セル範囲の各セルの左上隅から右下への罫線 |
xlDiagonalUp | セル範囲の各セルの左下隅から右上への罫線 |
「罫線指定」を省略した場合には、範囲内のすべての線に同じ設定がされます。
また、「プロパティ」としては、線種を指定するLineStyle以外に線の太さを指定するWeightや線の色を指定するColorなどがあります。
「設定値」についても線種の場合は実線のxlContinuous以外にxlDot(点線)、xlDash(破線)などがあります。
これらの「プロパティ」と「設定値」について主なものを一覧にすると以下のようになります。
プロパティ | 内容 | 設定値 | 設定値の内容 |
---|---|---|---|
LineStyle | 罫線の種類 | xlContinuous | 実線 |
xlDot | 点線 | ||
xlDash | 破線 | ||
xlDashDot | 一点鎖線 | ||
xlDashDotDot | ニ点鎖線 | ||
xlDouble | 2 本線 | ||
xlNone または xlLineStyleNone | なし | ||
Color | 罫線の色 | RGB値(整数) | |
Weight | 罫線の太さ | xlMedium | 普通 |
xlThick | 太線 | ||
xlThin | 細線 |
罫線を引く場合には、これらを使用して線種や色、太さの指定を変えながら引いていきます。
実際に、1つ1つ地道に設定して、
Range("C3:F6").Borders(xlEdgeLeft).LineStyle = xlContinuous Range("C3:F6").Borders(xlEdgeRight).LineStyle = xlContinuous Range("C3:F6").Borders(xlEdgeTop).LineStyle = xlContinuous Range("C3:F6").Borders(xlEdgeBottom).LineStyle = xlContinuous Range("C3:F6").Borders(xlEdgeLeft).Weight = xlThick Range("C3:F6").Borders(xlEdgeRight).Weight = xlThick Range("C3:F6").Borders(xlEdgeTop).Weight = xlThick Range("C3:F6").Borders(xlEdgeBottom).Weight = xlThick Range("C3:F6").Borders(xlEdgeLeft).Color = RGB(255, 0, 0) Range("C3:F6").Borders(xlEdgeRight).Color = RGB(255, 0, 0) Range("C3:F6").Borders(xlEdgeTop).Color = RGB(255, 0, 0) Range("C3:F6").Borders(xlEdgeBottom).Color = RGB(255, 0, 0)
とすると、
のように範囲内に罫線にて赤枠の四角形が描画されます。
色指定の「RGB(255, 0, 0)」はExcelにて用意されている「vbRed」としても同じ結果になります。
もう1つ、Bordersの後のカッコ内を省略して、
Range("C3:F6").Borders.LineStyle = xlContinuous Range("C3:F6").Borders.Weight = xlThick Range("C3:F6").Borders.Color = RGB(0, 0, 255)
とすると、範囲内のすべての線に設定がされますので、
のように範囲内のすべての上下左右の線に青色の線が引かれます。
関連記事:
【Excel VBA 文字列変換】大文字小文字変換方法、全角半角変換方法 - Django Girls and Boys 備忘録
【Excel VBA】文字列比較演算子「like」の使用方法 - Django Girls and Boys 備忘録
【Excel VBA】ファイル一覧やファイル有無確認に使われるDir()の使用方法 - Django Girls and Boys 備忘録
【Excel】プルダウンリストの設定方法 - Django Girls and Boys 備忘録
【Excel VBA】罫線の設定方法 - Django Girls and Boys 備忘録
【Excel VBA】塗りつぶし(背景色)の設定方法 - Django Girls and Boys 備忘録
【Excel VBA】シートをPDF形式で保存する方法 - Django Girls and Boys 備忘録
【Excel VBA】プルダウンリスト(ドロップダウンリスト)作成方法とセル表示形式(R1C1形式)でエラーになった時の対処方法 - Django Girls and Boys 備忘録
【Excel VBA】行の高さの取得、調整、自動調整をする方法 - Django Girls and Boys 備忘録
【Excel VBA】セル参照形式をVBAから変更する方法(A1形式、R1C1形式) - Django Girls and Boys 備忘録
【Excel VBA】改行コード(CR、LF、CRLF)の使用方法 - Django Girls and Boys 備忘録
【Excel VBA】ソースコードの改行方法 - Django Girls and Boys 備忘録
【Excel】の「開発」タブを表示させる方法 - Django Girls and Boys 備忘録
【Excel】ボタンの表示文字を改行する方法 - Django Girls and Boys 備忘録
【Excel】プルダウンリスト 設定方法、元データ追加方法、元データ変更方法 - Django Girls and Boys 備忘録
【Excel VBA】結合セルのコピー方法について - Django Girls and Boys 備忘録
【Excel VBA】あるシートのセル範囲に変更があった時に処理を実行する方法 - Django Girls and Boys 備忘録