Delphi Programming / Object Pascal

[掲載 2009年05月12日] [更新 2009年06月14日] ワード操作フォームEx |
ワード操作フォームEx
プロパティ |
| 動作確認等 |
- |
| 凡例 |
■ published
□ public
▲ ReadOnly |
| 全てのプロパティの先頭には wdf が付いています。 |
| ▲ wdfWordApp |
TWordApplication |
ワードのオブジェクト |
| ▲ wdfWordDoc |
TWordDocument |
ワードの文書オブジェクト |
| ▲ wdfWordHandle |
HWND |
ワードのハンドル |
| ▲ wdfWordVersionNo |
Integer |
ワードのバージョン番号 |
| □ wdfFileFullPath |
String |
文書のフルパス名
保存、読出しすると変わる |
| □ wdfFileExt |
String |
文書の拡張子
デフォルトは doc
保存や読出しの際に自動的に付加する |
| □ wdfHeaderFooterPrint |
Boolean |
ヘッダフッタ部の印刷有無のフラグ
False にすると印刷しない
デフォルトは True |
| □ wdfPrinterNo |
Integer |
プリンタの番号
印刷ダイアログで設定したプリンタ名の情報として、次回印刷時に使用する |
| □ wdfDlgWordFocused |
Boolean |
ボタン類クリック後、フォーカスをワードにするかのフラグ
デフォルトは False
主にワード本体で作業する場合に True にする |
フォーム表示前に、このプロパティに文書名を代入しておくと、フォーム表示後にこの文書を開きます。パス部分を省略すると、現在のフォルダの内の同名文書を開きます。
この時、文書名を Normal.dot とすると、標準テンプレートでの新規文書作成となります。Word 2007 の新規文書は作成できません。 |
| wdfPrinterNo は、Printer.PrinterIndex の値ではありません。プリンタは、ワードが独自で制御しているため、Delphi のプリンタの [プロパティ]、プリンタの API を使用しても設定はできません。また、ワードのプリンタ番号を直接設定してしまうと、システムの [通常使用するプリンタ] がそのプリンタになってしまいます。注意してください (マイクロソフトの資料による)。 |
| 特に用意していません。wdfWordDoc オブジェクトの Saved プロパティを使用してください。 |
procedure TplWordFormEx2.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
//保存したことにしてしまう
if wdfWordApp.Documents.Count > 0 then wdfWordDoc.Saved := True;
//元の処理を実行
inherited; ;
end;
| 図形やテキストボックスを表すオブジェクトは Shape です。これは Office2000.pas にも定義されていますが、互換性はありません。Office2000.pas には、エクセルやワードで使用する各種の定数が定義してありますので、これでは不便です。そこで、Twdf2000Shape という図形用のオブジェクトを定義しています。テキストボックスや図形はこのオブジェクトです。 |
字列や表のセルなどのオブジェクトは Range ですが、 Twdf2000Shape と名前付けを合わせるために、
Twdf2000Range というオブジェクトを定義しています。ブックマークと表の行やセルなどはこのオブジェクトです。
Delphi XE2, XE3, XE4 の Word2000.pas には Range オブジェクトはありません。WordRange として定義されています。以下のコードを参考にして修正してください。 |
{$IF CompilerVersion<22.1} //Delphi XE以下
Twdf2000Range = Word2000.Range;
{$ELSE}
Twdf2000Range = WordRange;
{$ENDIF}
|