VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -