Delphi Programming / Object Pascal
[掲載 2009年05月12日] [更新 2013年11月28日] ワード操作フォームEx |
ワード操作フォームEx
テストプログラム TableTest |
動作確認等 |
Windows 7 U64(SP1) + Delphi XE(UP1) Pro + Word 2010 |
表の行追加関係メソッドと,セルへの文字列挿入のテストプログラムです. |
|
図1
メソッド呼出用ボタンを配置 |
unit Unit1;
interface
uses
Windows, Messages, SysUtils, 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 TableTestUnit;
{$R *.DFM}
//=============================================================================
// ワード操作フォームEx(の継承フォーム)をモーダル表示
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
begin
//起動時に表示する文書名
plWordFormEx2.wdfFileFullPath := '表操作テスト文書.doc';
plWordFormEx2.ShowModal;
end;
end.
リスト2
ワード操作フォームEx の (継承フォームの) コード |
unit TableTestUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, plWordEx, StdCtrls, Buttons, ToolWin, ComCtrls, ExtCtrls;
type
TplWordFormEx2 = class(TplWordFormEx)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure btnFileSaveClick(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
plWordFormEx2: TplWordFormEx2;
implementation
{$R *.dfm}
//=============================================================================
// 第2の表の最下行をコピーして行を追加
// セル内の文字もコピー
//=============================================================================
procedure TplWordFormEx2.Button1Click(Sender: TObject);
begin
//画面更新の停止
LockWindowUpDate(PanelLeft.Handle);
wdfAddRowCopy(1);
//画面更新の再開
LockWindowUpDate(0);
//保存済みにしてしまう
wdfWordDoc.Saved := True;
end;
//=============================================================================
// 第1の表に空白行追加
// テスト文書なので終了後は変更なしにしている
//=============================================================================
procedure TplWordFormEx2.Button2Click(Sender: TObject);
begin
//画面更新の停止
LockWindowUpDate(PanelLeft.Handle);
wdfAddRow(1);
//画面更新の再開
LockWindowUpDate(0);
//保存済みにしてしまう
wdfWordDoc.Saved := True;
end;
//=============================================================================
// 指定セルに文字列をセット
// ここでは第1の表の,1行2列目
// 表の行と列の開始番号は1
//=============================================================================
procedure TplWordFormEx2.Button3Click(Sender: TObject);
begin
//画面更新の停止
LockWindowUpDate(PanelLeft.Handle);
wdfPutCellText(1, 1, 2, '東京都');
//画面更新の再開
LockWindowUpDate(0);
//保存済みにしてしまう
wdfWordDoc.Saved := True;
end;
//=============================================================================
// 著者が使用している変則セルをもつ表の行追加メソッドの使用例
// ここでは第2の表に追加
// この表は実質3行でできているので,第2引数の値を3としている
//=============================================================================
procedure TplWordFormEx2.Button4Click(Sender: TObject);
begin
//画面更新の停止
LockWindowUpDate(PanelLeft.Handle);
wdfAddRowEx(2,3);
//画面更新の再開
LockWindowUpDate(0);
//保存済みにしてしまう
wdfWordDoc.Saved := True;
end;
//=============================================================================
// 表の番号
// ここでは1行1列目のセルに表番号の数字をセット
//=============================================================================
procedure TplWordFormEx2.Button5Click(Sender: TObject);
var
pTable : OleVariant;
pRow : OleVariant;
pCol : OleVariant;
i : Integer;
begin
pRow := 1;;
pCol := 1;
//表の番号も行と列の数値も1から始まることに注意
for i := 1 to wdfWordDoc.Tables.Count do begin
pTable := i;
wdfWordDoc.Tables.Item(pTable).Cell(pRow,pCol).Range.Text := IntToStr(i);
end;
end;
//=============================================================================
// 戻す
//=============================================================================
procedure TplWordFormEx2.Button6Click(Sender: TObject);
begin
wdfWordDoc.Undo;
end;
//=============================================================================
// 保存時は文書名自動生成
//=============================================================================
procedure TplWordFormEx2.btnFileSaveClick(Sender: TObject);
var
S : String;
begin
S := FormatDateTime('yyyy"年"mm"月"dd"日_"', Now);
SaveDialog1.FileName := S + '表操作テスト文書';
//継承元のボタンクリックを実行
inherited;
end;
end.
|