投稿日 | : 2003/06/13(Fri) 12:07 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re: Excel印刷設定の高速化 |
PageSetupオブジェクトの各プロパティへのアクセスは、かなり低速です。
コードではなく、実際の操作が高速になるのは、各プロパティをひとつずつ設定するのではなく、
『ページ設定』ダイアログによって、複数のプロパティを一括して設定する事ができるためです。
そして、各プロパティの設定に要する時間は、プリンタドライバに強く依存します。
例えば当方の環境場合、PageSetupの各プロパティを設定するまでに、
キヤノン製の某レーザプリンタでは、1.2秒で済んだプログラムが、
NEC製の某インクジェットプリンタでは、10秒もかかったという経験があります。
(後者では、プロパティを1つ更新するたびに、0.9秒ほどの時間がかかっていました)
そのため、苦肉の策として、お客様に事情を説明して、
『[ページ設定]ダイアログが表示されますので、OKを押して下さいね』
という運用で逃げた(泣)ことがあります。
With WS.PageSetup
If 処理時間の短いプリンタを使っている場合 Then
.PrintTitleRows = "$1:$8"
.LeftMargin = 0
.RightMargin = 0
.TopMargin = 0
.BottomMargin = 0
.HeaderMargin = 0
.FooterMargin = 0
.Orientation = XlLandscape
.PaperSize = XlPaperA4
.Zoom = false
.FitToPagesWide = 1
.FitToPagesTall = False
Else
XL.Dialogs(xlDialogPageSetup).Show "", "", 0, 0, 0, 0, False, False, True, False, XlLandscape, XlPaperA4, Array(1, "")
End If
End With