Delphi Programming / Object Pascal
[掲載 2009年05月28日] [更新 2013年12月12日] エクセル操作フォームEx
エクセル操作フォームEx 参考コード類
列と行に対する操作
動作確認等
Windows 7 U64(SP1) + Delphi XE Pro + Excel 2010
列に対する操作は EntireColumn - 列のコピーと列幅設定例
Range オブジェクトの EntireColumn プロパティが列全体の Range オブジェクトとなります.
この Range オブジェクトに対して,セルの書式に関するプロパティやメソッドが使用できます.
行と列の挿入や削除は,エクセル操作フォームEx 本体にメソッドが用意してあります.必要に応じてソースコードを参考にしてください.
copy code
// =============================================================================
// 列の複写(コピー貼付け)
// EntireColumnプロパティを使用すると列のRangeオブジェクトが取得できる
// このRaneオブジェクトに対してメソッドやプロパティを使用する
// =============================================================================
procedure TplExcelFormEx1.Button1Click(Sender: TObject);
var
ARange : Txlf2000Range;
begin
// コピー元のセルを含む列のRangeオブジェクト
// B1を指定しているのでB1を含む列となる
ARange := xlfExcelSheet.Range['B1' ,'B1' ].EntireColumn;
// コピー元がわかるように選択
ARange.Select;
// D列に貼付け
ARange.Copy(xlfExcelSheet.Range['D1' ,'D1' ].EntireColumn);
end ;
// =============================================================================
// 列幅
//
// 列幅の単位は標準スタイルの1文字分の幅
// プロポーショナルフォントでは数字の0の幅が列幅の単位
// =============================================================================
procedure TplExcelFormEx1.Button2Click(Sender: TObject);
var
ARange : Txlf2000Range;
begin
// 列幅の変更
// ここではB列からD列まで
ARange := xlfExcelSheet.Range['B1' ,'D1' ];
ARange.ColumnWidth := 3.5 ;
end ;
// =============================================================================
// 列の幅
// 選択中の列の幅を同じにする
// =============================================================================
procedure TplExcelFormEx1.Button3Click(Sender: TObject);
var
ARange : Txlf2000Range;
begin
ARange := (xlfExcelApp.ActiveWindow.Selection as Txlf2000Range);
ARange.ColumnWidth := 15.2 ;
end ;
行に対する操作は EntireRow - 行のコピーと行高さ設定例
Range オブジェクトの EntireRow プロパティが行全体の Range オブジェクトとなります.
この Range オブジェクトに対して,セルの書式に関するプロパティやメソッドが使用できます.
copy code
// =============================================================================
// 行の複写(コピー貼付け)
// EntireRowプロパティを使用すると行のRangeオブジェクトが取得できる
// このRaneオブジェクトに対してメソッドやプロパティを使用する
// =============================================================================
procedure TplExcelFormEx1.Button1Click(Sender: TObject);
var
ARange : Txlf2000Range;
begin
// 元の対象セルを含む行のRangeオブジェクト
ARange := xlfExcelSheet.Range['B2' ,'B4' ].EntireRow;
// コピーがわかるように選択
ARange.Select;
// 貼付け.1行指定だが元の行数分の貼付けとなる
ARange.Copy(xlfExcelSheet.Range['B7' ,'B7' ].EntireRow);
end ;
// =============================================================================
// 行の高さ
// 高さの単位はポイント
// =============================================================================
procedure TplExcelFormEx1.Button2Click(Sender: TObject);
var
ARange : Txlf2000Range;
begin
// 行高さの変更
// 2~4行までの高さを変更
ARange := xlfExcelSheet.Range['A2' ,'A4' ];
ARange.RowHeight := 25.2 ;
end ;
// =============================================================================
// 行の高さ
// 選択中の行の高さを同じにする
// =============================================================================
procedure TplExcelFormEx1.Button3Click(Sender: TObject);
var
ARange : Txlf2000Range;
begin
ARange := (xlfExcelApp.ActiveWindow.Selection as Txlf2000Range);
ARange.RowHeight := 25.2 ;
end ;
選択中の行の高さを設定をダイアログを表示して設定するには,次のコードのように,コマンド ID の 541 を使用するできます.
図7
行の高さを設定するダイアログ
copy code
procedure TplExcelFormEx1.Button4Click(Sender: TObject);
var
objCmdBars : OleVariant;
begin
xlfSetFocusExcel;
objCmdBars := xlfExcelApp.CommandBars;
try
objCmdBars.FindControl(ID := 541 ).Execute;
except
end ;
end ;
選択中の列の幅を設定するダイアログは,コマンド ID の 542 を使用すると表示できます.
copy code
procedure TplExcelFormEx1.Button5Click(Sender: TObject);
var
objCmdBars : OleVariant;
begin
xlfSetFocusExcel;
objCmdBars := xlfExcelApp.CommandBars;
try
objCmdBars.FindControl(ID := 542 ).Execute;
except
end ;
end ;