Delphi Programming / Object Pascal
[掲載 2009年05月31日] [更新 2013年11月29日] ワード操作フォームEx |
ワード操作フォームEx 参考コード類
文書のコピー |
動作確認等 |
Windows 7 U64(SP1) + Delphi XE2 + Word 2010 |
現在の頁 (入力フォーカスがある頁) 全体をコピーして,文書の末尾に貼り付け文書の末尾に移動する例です.指定の頁にジャンプしてから実行すれば,指定頁のコピーとなります.
ワード操作フォームEx には,指定ページに移動の wdfJumpPage メソッドを実装しています. |
procedure TplWordFormEx2.Button1Click(Sender: TObject);
var
ARange : Twdf2000Range;
pBookName : OleVariant;
pType : OleVariant;
pUnit : OleVariant;
pCount : OleVariant;
begin
//現在のページのRangeオブジェクト取得
pBookName := '\page';
ARange := wdfWordDoc.Bookmarks.Item(pBookName).Range;
//そのRange,つまりページ全体をコピー
ARange.Copy;
//文書末尾のSelectionオブジェクトを取得して改頁を挿入
pBookName := '\EndOfDoc';
wdfWordDoc.Bookmarks.Item(pBookName).Select;
pType := wdPageBreak;
wdfWordApp.Selection.InsertBreak(pType);
//貼り付け
wdfWordApp.Selection.Paste;
//改頁したので1文字分削除
pUnit := wdCharacter;
pCount := 1;
wdfWordApp.Selection.Delete(pUnit, pCount);
wdfWordApp.ScreenRefresh;
end;
現在の文書全体をコピーするには,文書を表すブックマークが利用できます.
次のコードは,文書全体をコピーして,新規追加した頁に貼り付けます.文書全体の頁数は元の 2 倍となります.頁追加は,実際には最後の頁で [改頁] [挿入] と同じ動作を実行しています. |
procedure TplWordFormEx2.Button2Click(Sender: TObject);
var
ARange : Twdf2000Range;
pBookName : OleVariant;
pType : OleVariant;
begin
//現在の文書全体のRangeオブジェクト取得
pBookName := '\Doc';
ARange := wdfWordDoc.Bookmarks.Item(pBookName).Range;
//そのRange,つまり文書全体をコピー
ARange.Copy;
//文書末尾のSelectionオブジェクトを取得して改頁を挿入
pBookName := '\EndOfDoc';
wdfWordDoc.Bookmarks.Item(pBookName).Select;
pType := wdPageBreak;
wdfWordApp.Selection.InsertBreak(pType);
//クリップボードから貼り付け
wdfWordApp.Selection.Paste;
end;
|