喫茶XRAYトップページ

[スレッド全体
]

[3460] ワード・エクセル操作フォームの印刷機能返信 削除
2010/6/16 (水) 10:38:12 Mr.XRAY
エクセル(Microsoft Excel)とワード(Microsoft Word)は,
プリンタの情報を内部で独自に持っています.
そのため,DelphiのTPrinterオブジェクトでは制御できません.
(DEVMODE構造体を設定しても,エクセル内部の設定が使用されます)

エクセルの場合,詳細なプロパティを設定して印刷したい場合は,
エクセルのダイアログを表示して印刷してください.
参考コードは,以下にあります.

[エクセルの印刷ダイアログ]
http://mrxray.on.coocan.jp/Delphi/plExcelEx/T_PrintDialog.htm

//=============================================================================
//  [印刷]ボタンクリックでエクセルの印刷ダイアログを表示して印刷する方法
//
//  継承フォームの[印刷]ボタンクリックイベントで
//  (1)inherited; を無効にする
//     (継承元のエクセル操作フォームの印刷コードを無効にする)
//  (2)印刷ダイアログを表示するコードを書く
//
//  エクセルの印刷ダイアログ表示のコードは以下を参照
//  [エクセルの印刷ダイアログ]
//  http://mrxray.on.coocan.jp/Delphi/plExcelEx/T_PrintDialog.htm
//=============================================================================
procedure TplExcelFormEx2.btnPrintClick(Sender: TObject);
begin
//  inherited;

  エクセルの印刷ダイアログ表示のコード,あるいは印刷コードを書く
end;


あるいは,独自の印刷ダイアログを作成するの1つの方法かも知れません
VBAのヘルプを[印刷]で調べるといろいろでてきます.
例えば,印刷対象となっているシートを,倍率を指定して印刷するには,

  xlfExcelSheet.PageSetup.Zoom := 200; //200%の意味
 
でできます.


[3461] Re:ワード・エクセル操作フォームの印刷機能返信 削除
2010/6/16 (水) 10:50:01 Mr.XRAY
オンライン・マニュアルのメソッドの記事には書いていませんが,
当然,元のエクセルや,ワードオブジェクトのプロパティやメソッドも
使用できます.

エクセルのシートの印刷であれば,

xlfExcelSheet.PrintOut;

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82