V5 ドキュメントはプレビュー版です。正式リリース(2026 年 8 月 19 日)まで内容が更新されることがあります。

罫線はセル値とは別の側テーブル ws.BordersBorderTable)が保持します。 罫線を持つセルだけがテーブルに載るため、コストはシート寸法ではなく罫線の数に比例します。

V4 の BorderPositions ビットフラグとプリセット(RangeBorderStyle.BlackSolid など)は 廃止されました。

範囲の外周と、1 辺だけ差し替えた罫線

範囲の外周

using unvell.ReoGrid.Core;

var edge = new BorderEdge(BorderLineStyle.Solid, 0xFF000000u, 1f);

ws.Borders.SetOutline(RangePosition.Parse("B2:D5"), edge);

BorderEdge は線種・色(uint ARGB)・太さを持つ不変の値型です。

線種(BorderLineStyle
None罫線なし
Solid実線
Dashed破線
Dotted点線
Double二重線
Thick太線

辺を個別に設定する

var thick = new BorderEdge(BorderLineStyle.Thick, 0xFF0066CCu, 2f);

ws.Borders.SetEdge(1, 1, BorderSide.Bottom, thick);
ws.Borders.SetEdge(1, 1, BorderSide.Right, BorderEdge.None);   // 消す

BorderEdge bottom = ws.Borders.GetEdge(1, 1, BorderSide.Bottom);
if (!bottom.IsNone)
	Console.WriteLine(bottom.Style);

BorderSideTop / Right / Bottom / Left です。 罫線を消すには BorderEdge.None を設定します。

セルの 4 辺をまとめて扱う

CellBorders b = ws.Borders.Get(1, 1);

if (!b.IsEmpty)
	Console.WriteLine(b[BorderSide.Top].Width);

// 1 辺だけ差し替えた新しい値を作る(CellBorders は不変)
ws.Borders.Set(1, 1, b.With(BorderSide.Left, BorderEdge.None));

CellBorders は 4 辺をまとめた不変の値型です。With(side, edge) は 1 辺だけ差し替えた 新しい値を返します。

内部罫線

範囲内部の一括設定に相当する API は、現状外周(SetOutline)のみです。 内部の罫線はループで設定します。

// 内部の横罫線は行をまたぐ辺を順に設定する
for (int r = range.Row; r < range.EndRow; r++)
	for (int c = range.Col; c <= range.EndCol; c++)
		ws.Borders.SetEdge(r, c, BorderSide.Bottom, edge);

UI の選択範囲に対しては、コントロール側にヘルパがあります。

  • control.SetSelectionOutline(color, width) — 外周
  • control.SetSelectionAllBorders(color, width) — 全辺
  • control.ClearSelectionBorders()

一覧と消去

int count = ws.Borders.Count;      // 罫線を持つセルの数(シート寸法とは無関係)

foreach (var (row, col, borders) in ws.Borders.Entries())
	Console.WriteLine($"{row},{col}: {borders}");

ws.Borders.Clear();

挿入・削除との関係

行や列を挿入・削除すると、罫線は自動的に追従します。

次に読む

  • セルの結合
  • スタイル
ページの内容は役に立ちましたか?