Delphi Programming / Object Pascal
[掲載 2009年05月24日] [更新 2013年12月12日] エクセル操作フォームEx |
エクセル操作フォームEx
テストプログラム CellCopy |
動作確認等 |
Windows 7 U64(SP1) + Delphi XE(UP1) Pro + Excel 2010 |
メソッド xlfCopyCells のテストプログラムです.表の 1 行目のデータを下方向に複写しています.
貼り付け開始セルの違いの動作確認用のテストです.数値では,貼り付け開始セルが元のセルと同じ場合,連続した値のコピーとなります.曜日などの文字列の場合には連続した値,いわゆるオートフィルの実行となります. |
|
図1
実行結果 |
|
図2
実行結果の表の一部 |
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
uses CellCopyUnit;
{$R *.dfm}
//=============================================================================
// エクセル操作フォームEx(の継承フォーム)をモーダル表示
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
begin
//フォーム表示開始時に開くブック名
//フォームのOnShowで設定してもよい
plExcelFormEx2.xlfBookFullPath := 'CellCopyTestBook.xls';
//表示時に選択するセル
plExcelFormEx2.xlfActiveCell := 'A2';
//行列番号を表示する
plExcelFormEx2.xlfDisplayHeadings := True;
//エクセル操作フォームEx(の継承フォーム)を表示
plExcelFormEx2.ShowModal;
end;
end.
unit CellCopyUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, plExcelEx, ToolWin, ComCtrls, ExtCtrls;
type
TplExcelFormEx2 = class(TplExcelFormEx)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
plExcelFormEx2: TplExcelFormEx2;
implementation
{$R *.dfm}
//=============================================================================
// Button1クリックで実行
// 行(縦方向)方向のコピーの例
//=============================================================================
procedure TplExcelFormEx2.Button1Click(Sender: TObject);
begin
try
LockWindowUpdate(PanelLeft.Handle);
//操作対象セル範囲をクリア
xlfClearRange('B5','G25');
xlfCopyCells('B4', 'B4', 'B25');
xlfCopyCells('C4', 'C5', 'C25');
xlfCopyCells('D4', 'D4', 'D25');
xlfCopyCells('E4', 'E5', 'E25');
xlfCopyCells('F4', 'F4', 'F25');
xlfCopyCells('G4', 'G5', 'G25');
xlfActiveCell := 'A1';
except
end;
LockWindowUpdate(0);
//保存したことにする(つまり変更なし)
xlfBookSaved := True;
end;
end.
|