Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2009年05月12日] [更新 2013年11月28日] ワード操作フォームEx
ワード操作フォームEx
テストプログラム HeaderFooter
動作確認等 Windows 7 U64(SP1) + Delphi XE(UP1) Pro + Word 2010







ヘッダフッタ部の操作


ワードのヘッダまたはフッタ部を操作するには,ヘッダフッタ部のオブジェクトを取得し,そのオブジェクトに対してメソッドやプロパティを設定します.このテストプログラムはワードアートを挿入する例です.


図1
実行結果

リスト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.