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%の意味
でできます.
|
|