Delphi Programming / Object Pascal
[掲載 2009年05月12日] [更新 2013年11月28日] ワード操作フォームEx |
ワード操作フォームEx
テストプログラム HeaderFooter |
動作確認等 |
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 HeaderUnit;
{$R *.DFM}
//=============================================================================
// ワード操作フォームEx(の継承フォーム)をモーダル表示
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
begin
//フォームを表示する前に文書名を指定すると,その文書を表示する
plWordFormEx2.wdfFileFullPath := '白紙文書.doc';
plWordFormEx2.ShowModal;
end;
end.
リスト2
ワード操作フォームEx の (継承フォームの) コード |
unit HeaderUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, plWordEx, StdCtrls, Buttons, ToolWin, ComCtrls, ExtCtrls,
Word2000, Office2000;
type
TplWordFormEx2 = class(TplWordFormEx)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
plWordFormEx2: TplWordFormEx2;
implementation
{$R *.dfm}
//====================================================================
// ヘッダフッタ部にワードアートを挿入
// HeaderFooterはWord2000.pasで定義されているもの
//====================================================================
procedure TplWordFormEx2.Button1Click(Sender: TObject);
var
pKind : OleVariant;
pStr : OleVariant;
pFontName : OleVariant;
pFontSize : OleVariant;
pBold : OleVariant;
pItalic : OleVariant;
pLeft : OleVariant;
pTop : OleVariant;
pTrue : OleVariant;
pFalse : OleVariant;
AHF : HeaderFooter;
AShape : Twdf2000Shape;
begin
pKind := msoTextEffect8; //ワードアートの
pStr := 'ワードアート'; //描画文字列
pFontName := 'MS Pゴシック'; //フォント名
pFontSize := 80.0; //フォントサイズ
pBold := True; //太字指定
pItalic := False; //斜体文字指定
pLeft := 30.0; //用紙左端からの位置.pt単位
pTop := 150.0; //用紙上端からの位置.pt単位
pTrue := True;
pFalse := False;
//画面更新の停止
LockWindowUpdate(PanelLeft.Handle);
//奇数と偶数頁でヘッダフッタ部を変えない
wdfWordDoc.PageSetup.OddAndEvenPagesHeaderFooter := pFalse;
//すべての頁のヘッダフッタを同じとする.pTrueだと最初の頁のみ別
wdfWordDoc.PageSetup.DifferentFirstPageHeaderFooter := pFalse;
//ヘッダフッタオブジェクトを取得
AHF := wdfWordDoc.Sections.Item(1).Headers.Item(wdHeaderFooterPrimary);
//ヘッダフッタ部にワードアートを挿入
AShape := AHF.Shapes.AddTextEffect(pKind,
pStr,
pFontName,
pFontSize,
pBold,
pItalic,
pLeft,
pTop,
EmptyParam);
//画面更新の再開
LockWindowUpdate(0);
Application.ProcessMessages;
//2秒後に位置を移動
Sleep(2000);
AShape.Top := 300;
//保存済みとする
wdfWordDoc.Saved := True;
end;
end.
|