Delphi Programming / Object Pascal
[掲載 2009年05月12日] [更新 2013年11月28日] ワード操作フォームEx |
ワード操作フォームEx 参考コード類
現在の頁番号と総頁数 |
動作確認等 |
Windows 7 U64(SP1) + Delphi XE2 + Word 2010 |
入力キャレット(カーソル)がある頁の通し頁番号を取得します. |
procedure TplWordFormEx2.Button1Click(Sender: TObject);
var
PageNo : Integer;
PageSerial : Integer;
strPage : String;
begin
//何頁目かを取得
PageSerial := wdfWordApp.Selection.Information[wdActiveEndPageNumber];
//頁番号を取得.1頁目が5なら2頁目は6となる
PageNo := wdfWordApp.Selection.Information[wdActiveEndAdjustedPageNumber];
strPage := '現在 ' + IntToStr(PageSerial) + ' 頁目で,'+
'頁番号は ' + IntToStr(PageNo )+ ' です.';
MessageBox(Handle, PChar(StrPage), '情報', MB_ICONINFORMATION);
end;
//=============================================================================
// 全頁数の取得 1
//=============================================================================
procedure TplWordFormEx2.Button2Click(Sender: TObject);
var
objWordDoc : OleVariant;
Pages : Integer;
strPage : String;
begin
objWordDoc := wdfWordApp.ActiveDocument;
Pages := objWordDoc.BuiltInDocumentProperties[wdPropertyPages].Value;
strPage := '全部で ' + IntToStr(Pages) + ' 頁あります.';
MessageBox(Handle, PChar(StrPage), '情報', MB_ICONINFORMATION);
end;
//=============================================================================
// 全頁数の取得 2
//=============================================================================
procedure TplWordFormEx2.Button3Click(Sender: TObject);
var
Pages : Integer;
strPage : String;
begin
Pages := wdfWordApp.Selection.Information[wdNumberOfPagesInDocument];
strPage := '全部で ' + IntToStr(Pages) + ' 頁あります.';
MessageBox(Handle, PChar(StrPage), '情報', MB_ICONINFORMATION);
end;
文書にページ番号を挿入するのはコードでもできますが,ダイアログで設定する際の参考です.
このダイアログの [書式] ボタンで,この後のページ番号の書式ダイアログを表示できます. |
|
図1
ページ番号設定ダイアログ |
procedure TplWordFormEx2.Button4Click(Sender: TObject);
var
objDialog : OleVariant;
begin
wdfSetFocusWord;
try
objDialog := wdfWordApp.Dialogs.Item(wdDialogInsertPageNumbers);
objDialog.Show;
except
raise;
end;
wdfSetFocusWord;
end;
ページ番号の書式もコードでもできますが,ダイアログで設定する際の参考です. |
|
図2
ページ番号の書式設定用のダイアログ |
procedure TplWordFormEx2.Button5Click(Sender: TObject);
var
objDialog : OleVariant;
begin
wdfSetFocusWord;
try
objDialog := wdfWordApp.Dialogs.Item(wdDialogFormatPageNumber);
objDialog.Show;
except
raise;
end;
wdfSetFocusWord;
end;
|