top of page

​タグ一覧

配列処理(73)

階層化フォーム(33)

ファイル操作(28)

開発事例(25)

シート・セル操作(23)

図形操作(15)

設計思想(13)

講座実施報告(12)

ユーザーフォーム(10)

コード自動生成(10)

ココナラ(9)

数学(8)

文字列操作(8)

開発効率化(6)

GAS(5)

副業(5)

アニメーション(5)

技術解説(4)

イミディエイトウィンドウ(4)

Googleスプレッドシート(4)

クリップボード(4)

条件付き書式(4)

その他(4)

Webアプリ(4)

OneDrive(3)

イベントプロシージャ(3)

小説(3)

HTML(3)

JavaScript(3)

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Outlook(2)

介護(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

公開ツール(2)

罫線(2)

パズル(2)

小ネタ(2)

コード解説(2)

クラスモジュール(2)

Antigravity(2)

デスクトップアプリ(2)

ステータスバー(1)

コード解析(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

Excel(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

溶接ロボット(1)

VBA(1)

保育士(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

放課後等デイサービス(1)

児童福祉支援(1)

学校(1)

UI(1)

CAD(1)

カーソル操作(1)

チェックボックス(1)

PowerShell(1)

python(1)

SetBorderVerticalPartition|縦罫線でセル範囲を列ごとに区切る

この部品でできること

SetBorderVerticalPartition は、指定したセル範囲を列数の一覧(PartitionList1D)に従って複数のブロックに分け、各ブロックを縦罫線で区切るExcel VBAの汎用プロシージャです。

  • 分割位置は1始まりの一次元配列で指定(例 [2,2,3] → 2列 / 2列 / 3列 の3ブロック)

  • 各ブロックに外周罫線+内側罫線をまとめて設定

  • 線種・太さは列挙型(Enum)で直感的に指定でき、内側水平罫線のオン/オフも選べる

複数の項目グループを持つ表を、グループの境界で見やすく区切りたいときに便利です。

使いどころ

  • 担当ごと・月ごとなど、複数の項目グループを持つ表を境界で区切りたいとき

  • 見出し+データの表に、決まったスタイルの罫線をまとめて引きたいとき

  • 分割位置を配列で変えるだけで、いろいろな列構成に対応したいとき

コード

宣言セクション(Enum)はモジュールの先頭に配置してください。依存プロシージャ(IsArray1D / IsArray1DStart1)も含めているので、そのまま貼り付ければ動作します。

使い方・引数

引数に、基準セル・最終行・分割する列数の一覧などを渡して呼び出します。

  • Cell(Range):基準となる左上のセル

  • EndRow(Long):罫線設定範囲の最終行

  • PartitionList1D(Variant):縦罫線で分割する列数の1始まり一次元配列(例 [2,2,3] → 2列 / 2列 / 3列)

  • [EdgeStyle] / [EdgeWeight]:外側罫線の線種・太さ(既定:実線・中太線)

  • [InsideHorizontalStyle] / [InsideHorizontalWeight]:内側水平罫線の線種・太さ(既定:点線・細線)

  • [InsideVerticalStyle] / [InsideVerticalWeight]:内側垂直罫線の線種・太さ(既定:実線・細線)

  • [InsideHorizontalOff]:内側水平罫線を設定しないか(既定:True=設定しない)

次は、ActiveSheet の B3 を起点に12行目まで、B:C / D:E / F:H の3ブロックに区切る呼び出し例です(見出しとデータも入力して確認しています)。

実際に使用すると下記の様にシート上に罫線が設定されます。B:C / D:E / F:H の3ブロックが縦罫線で区切られ、各ブロックの外周が太線、内側が点線(水平)・実線(垂直)で描かれます。

SetBorderVerticalPartitionの実行結果

依存プロシージャ

  • 宣言セクション(Enum)EnumLineStyle / EnumLineWeight(線種・太さの列挙型)を、必ずモジュールの先頭に配置してください(上のコードの宣言セクション部分)。これにより 実線点線中太線 のように日本語で分かりやすく指定できます。

  • IsArray1D / IsArray1DStart1:引数 PartitionList1D が「1始まりの一次元配列」であることをチェックするために使用します。詳しくは 配列の次元と開始要素番号を確認する(IsArray1D / IsArray1DStart1) を参照してください。

上のコードには依存関数も含めているので、そのまま標準モジュールに貼り付ければ動作します。

応用・注意点

  • PartitionList1D は1始まりの一次元配列で渡します(0始まりや二次元配列を渡すとエラーメッセージが表示されます)。各要素がブロックの列数、合計が全体の列数になります。

  • InsideHorizontalOff は既定で True(内側の水平罫線を引かない)です。サンプルのように表として横線も引きたい場合は False を指定します。

  • 線種・太さは列挙型で 実線 / 点線 / 破線 / 中太線 / 細線 のように指定できます。既定値を変えたい場合は呼び出し時に引数で上書きします。

まとめ

SetBorderVerticalPartition を使えば、列数の一覧を渡すだけで、表を列グループごとに区切る罫線を一括で設定できます。分割位置を配列で変えれば、さまざまな列構成の表にそのまま使えるので、帳票や集計表づくりの部品として便利です。

最新記事

すべて表示

Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

softex-celwareロゴ 透過 横長.png

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page