Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2009年06月20日] [更新 2013年11月27日] ワード操作フォームEx
ワード操作フォームEx   参考コード類
印刷しない文字列の設定
動作確認等 Windows 7 U64(SP1) + Delphi XE2 + Word 2010







wdfHeaderFooterPrint プロパティを使う


ヘッダフッタ部に挿入した文字列や図形は,wdfHeaderFooterPrint プロパティをFalseにすると印刷しません.帳票の入力画面等で,台紙となる帳票をヘッダ部に入れておき,台紙は印刷させないような用途に利用できます.




隠し文字を使う


文字列を「隠し文字」にすると,印刷しないように設定することができます.
隠し文字は次のように設定します.隠し文字にすると,デフォルトでは文字列に点線の下線が描画されます.


図1
隠し文字には点線の下線が付く

//=============================================================================
//  選択中の文字列を隠し文字にする
//  解除するにはHiddenプロパティの値を0にする
//=============================================================================
procedure TplWordFormEx2.Button1Click(Sender: TObject);
begin
  wdfWordApp.Selection.Font.Hidden := 1;
end;


そして,隠し文字を以下のコードで印刷しないようにします.


//=============================================================================
//  隠し文字列を表示するが,印刷の時は印刷しないようにする設定
//=============================================================================
procedure TplWordFormEx2.Button2Click(Sender: TObject);
begin
  //隠し文字を表示する
  wdfWordApp.ActiveWindow.View.ShowHiddenText := True;
  //隠し文字を印刷しない
  wdfWordApp.Options.PrintHiddenText := False;
end;




隠し文字の設定をダイアログで行う


ダイアログで設定するには,まず,印刷したくない文字列を選択して,フォントの設定ダイアログを表示します.このダイアログで [隠し文字] の項目をチェックします.


図2
隠し文字にする

//=============================================================================
//  フォントの設定ダイアログを表示
//  選択中の文字列を隠し文字にする
//=============================================================================
procedure TplWordFormEx2.Button3Click(Sender: TObject);
begin
  wdfSetFocusWord;
  wdfWordApp.Dialogs.Item(wdDialogFormatFont).Show(EmptyParam);
  wdfSetFocusWord;
end;


隠し文字を印刷しないようにするには,Word オプションのダイアログの項目 [表示] を選択し,次の作業を行います.
  • [常に画面に表示する編集記号] の [隠し文字] をチェック
  • [印刷オプション] の [隠し文字を印刷する] のチェックを外す
下のコードがこのダイアログを表示するコードで,図がそのダイアログです.


図3
隠し文字関係の設定

//=============================================================================
//  Wordのオプションの[表示]ダイアログを表示
//  隠し文字を表示する印刷するかの設定をする
//=============================================================================
procedure TplWordFormEx2.Button4Click(Sender: TObject);
begin
  wdfSetFocusWord;
  wdfWordApp.Dialogs.Item(wdDialogToolsOptionsView).Show(EmptyParam);
  wdfSetFocusWord;
end;