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;