SetBorder2D|セル範囲を基準列で区切る罫線を設定| Excel VBA
- yuji fukami
- 1月2日
- 読了時間: 2分
更新日:1月4日

<概要(VBA セル範囲 罫線)>
SetBorder2D は、Excel VBA で表形式データなどのセル範囲の罫線を「基準列の値変化」を軸に自動制御するための汎用プロシージャです。
分類・区分・ID などの列を基準に、同じ値が連続する行を1グループとして判定し、グループ単位で外枠罫線を設定することで、表全体の視認性を大きく向上させます。
帳票・一覧表・集計表では、区切りを強調するために罫線を手作業で引き直すケースが多くありますが、SetBorder2D を使用することで、行数が可変な表でも安定したレイアウト整形を自動化できます。
また、内側の水平・垂直罫線は線種・太さを個別に指定できるため、
「外枠は太く、内部は控えめ」といった実務向けのデザインにも柔軟に対応します。
<実行例>
実行例のサンプルコードは次の通りです
サンプルでは、6行×3列の2次元配列を新規シート「SetBorder2D_Sample」に一括出力し、見出し(B2:D2)+データ(B3:D8)を含む範囲 B2:D8 に対して SetBorder2D を実行します。
基準列は範囲の左端(B列)=BaseCol=1 として扱われ、A→B→C の切り替わり位置でグループ化されます。
その結果、同じ区分が連続する行は「1つのブロック」として外枠罫線が引かれ、ブロック境界がはっきり見える表になります。
外枠は「実線+中太線」、内側の水平線は「点線+細線」、内側の垂直線は「実線+細線」に設定しているため、
外枠を強調しつつ内部は控えめな実務向けレイアウトになります。

<関連コード>
今回の汎用プロシージャは、下記の別で紹介している汎用プロシージャを使用しています。
・UnionCell → https://www.softex-celware.com/post/unioncell
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。


