Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2009年05月24日] [更新 2013年12月14日] エクセル操作フォームEx
エクセル操作フォームEx   参考コード類
罫線の操作
動作確認等 Windows 7 U64(SP1) + Delphi XE Pro + Excel 2010







枠罫線とインサイド罫線と罫線の消去


対象の Range オブジェクトに対して操作します.罫線の消去は,LineStyle プロパティを xlNone にして罫線を描画します.


図1
実行画面

リスト1
枠罫線とインサイド罫線と罫線の消去
//=============================================================================
///  罫線を描画
//=============================================================================
procedure TplExcelFormEx1.Button1Click(Sender: TObject);
var
  ARange : Txlf2000Range;
begin
  //対象範囲
  ARange := xlfExcelSheet.Range['B2','D8'];

  //枠罫線
  ARange.BorderAround(xlContinuous, xlMedium, 16, EmptyParam);

  //インサイド罫線.縦
  with ARange.Borders[xlInsideVertical] do begin
    LineStyle  := xlContinuous;
    Weight     := xlHairline;
    ColorIndex := 12;
  end;

  //インサイド罫線.横
  with ARange.Borders[xlInsideHorizontal] do begin
    LineStyle  := xlContinuous;
    Weight     := xlHairline;
    ColorIndex := 12;
  end;
end;

//=============================================================================
//  罫線を消去
//  Button1Clickでは描画していないが,斜め罫線も消去
//=============================================================================
procedure TplExcelFormEx1.Button2Click(Sender: TObject);
var
  ARange : Txlf2000Range;
begin
  //対象範囲
  ARange := xlfExcelSheet.Range['B2','D8'];

  //上下左右の罫線
  //描画の時はBorderAroundを使用したが個別でも可能
  ARange.Borders[xlEdgeTop].LineStyle      := xlNone;
  ARange.Borders[xlEdgeBottom].LineStyle   := xlNone;
  ARange.Borders[xlEdgeLeft].LineStyle     := xlNone;
  ARange.Borders[xlEdgeRight].LineStyle    := xlNone;

  //斜め罫線
  ARange.Borders[xlDiagonalDown].LineStyle := xlNone;
  ARange.Borders[xlDiagonalUp].LineStyle   := xlNone;

  //インサイド罫線
  ARange.Borders[xlInsideVertical].LineStyle   := xlNone;
  ARange.Borders[xlInsideHorizontal].LineStyle := xlNone;
end;




上下左右の個別罫と斜め罫線とセルの結合


上下左右の罫線を個別に指定する場合と,斜め罫線を描画する例です.
Range オブジェクトのセルを結合した場合は,その Range 全体が1つのセルとみなされます.


図2
実行画面

リスト2
上下左右の個別罫線と,セル結合したセルの罫線
//=============================================================================
//  上下左右の個別罫線と斜め罫線
//=============================================================================
procedure TplExcelFormEx1.Button3Click(Sender: TObject);
var
  ARange : Txlf2000Range;
begin
  ARange := xlfExcelSheet.Range['B2','C5'];

  //上罫線
  with ARange.Borders[xlEdgeTop] do begin
    LineStyle  := xlContinuous;
    Weight     := xlThick;
    ColorIndex := 15;
  end;

  //下罫線
  with ARange.Borders[xlEdgeBottom] do begin
    LineStyle  := xlContinuous;
    Weight     := xlThick;
    ColorIndex := 15;
  end;

  //左罫線
  with ARange.Borders[xlEdgeLeft] do begin
    LineStyle  := xlContinuous;
    Weight     := xlThick;
    ColorIndex := 15;
  end;

  //右罫線
  with ARange.Borders[xlEdgeRight] do begin
    LineStyle  := xlContinuous;
    Weight     := xlThick;
    ColorIndex := 15;
  end;

  //右下がり斜め罫線
  with ARange.Borders[xlDiagonalDown] do begin
    LineStyle := xlDot;
    Weight    := xlHairline;
    Color     := clGray;
  end;

  //右上がり斜め罫線
  with ARange.Borders[xlDiagonalUp] do begin
    LineStyle := xlDot;
    Weight    := xlHairline;
    Color     := clGray;
  end;
end;
//=============================================================================
//  指定範囲(レンジ)のセルを結合して斜め罫線
//=============================================================================
procedure TplExcelFormEx1.Button4Click(Sender: TObject);
var
  ARange : Txlf2000Range;
begin
  ARange := xlfExcelSheet.Range['B7','C9'];

  //枠罫線
  ARange.BorderAround(xlContinuous, xlMedium, 50, EmptyParam);

  //セルの結合
  with ARange do begin
     MergeCells          := True;
     HorizontalAlignment := xlCenter;
     VerticalAlignment   := xlCenter;
     WrapText            := True;
  end;

  //右下がり斜め罫線
  with ARange.Borders[xlDiagonalDown] do begin
    LineStyle := xlDot;
    Weight    := xlHairline;
    Color     := clBlue;
  end;

  //右上がり斜め罫線
  with ARange.Borders[xlDiagonalUp] do begin
    LineStyle := xlDot;
    Weight    := xlHairline;
    Color     := clBlue;
  end;
end;




セルの枠線 ( グリッド線 ) の表示と非表示の切り換え


エクセル操作フォームEx には,セルの枠線を表示,非表示にするための xlfDisplayGridLine プロパティが実装されていますが,以下のようにしても設定可能です.

このプロパティでは,上のサンプルで描画した罫線を非表示にすることはできません.



リスト3
セルの枠線 (グリッド線) の表示と非表示の切り換え
//=============================================================================
///  セルの枠線(グリッド線)を表示
//=============================================================================
procedure TplExcelFormEx1.Button1Click(Sender: TObject);
begin
  xlfExcelApp.ActiveWindow.DisplayGridlines := True;
end;

//=============================================================================
//  セルの枠線(グリッド線)を非表示
//=============================================================================
procedure TplExcelFormEx1.Button2Click(Sender: TObject);
begin
  xlfExcelApp.ActiveWindow.DisplayGridlines := False;
end;