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
実行画面 |
//=============================================================================
/// 罫線を描画
//=============================================================================
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;
|