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

投稿日: 2003/06/13(Fri) 10:58
投稿者低速人
Eメール
URL
タイトルRe^4: Excel印刷設定の高速化

少々長くなりますが、コードと測定した時間を記します

・VB上からの印刷時間はページ設定から印刷処理まで : 30秒

手動でエクセルから印刷時間
・ページ設定をOKしてからそれが反映されるまで     : 1秒
・印刷処理がかけて終了まで                       : 1秒

VB、エクセル共にスプールされて紙が出てくるまで   : 2秒

使用PC : CPU400MHz
     Mem256MB

プリンタ : XERROX DocuPrint C3530(カラーレーザープリンタです)

印刷に使用しているファイルはエクセル97のシートに セルA1に「あ」と1文字入ってるだけで、シートは1枚しかないものです

以下がコードです

Private Sub cmdPrint_Click()
    Dim objApp                       As Excel.Application
    Dim objBook                      As Excel.Workbook
    Dim objSheet                     As Excel.Worksheet
    
    Dim i As Integer
    
    Set objApp = CreateObject("Excel.Application")
    objApp.Visible = False
    objApp.DisplayAlerts = False
    
    For i = 0 To filXls.ListCount - 1
    
        Set objBook = objApp.Workbooks.Open(filXls.Path & "\" & filXls.List(i))
        Set objSheet = objBook.Worksheets("sheet1")
    
        Beep    '時間測定 ここから↓
        With objSheet.PageSetup
            .PrintTitleRows = ""
            .PrintTitleColumns = ""
            .PrintArea = "$B$2:$CF$44"
            .LeftHeader = ""
            .CenterHeader = ""
            .RightHeader = ""
            .LeftFooter = ""
            .CenterFooter = ""
            .RightFooter = ""
            .LeftMargin = objApp.InchesToPoints(0.22)
            .RightMargin = objApp.InchesToPoints(0.2)
            .TopMargin = objApp.InchesToPoints(0.511811023622047)
            .BottomMargin = objApp.InchesToPoints(0.393700787401575)
            .HeaderMargin = objApp.InchesToPoints(0.196850393700787)
            .FooterMargin = objApp.InchesToPoints(0.196850393700787)
            .PrintHeadings = False
            .PrintGridlines = False
            .PrintComments = xlPrintNoComments
            .CenterHorizontally = True
            .CenterVertically = True
            .Orientation = xlLandscape
            .Draft = False
            .PaperSize = xlPaperA4
            .FirstPageNumber = xlAutomatic
            .Order = xlDownThenOver
            .BlackAndWhite = False
            .Zoom = 100
        End With
        
        objBook.PrintOut Copies:="1", Collate:=True
        Beep: Beep    '時間測定 ここまで↑
    
    
        objBook.Close SaveChanges:=False
        Set objSheet = Nothing
        Set objBook = Nothing

    Next
    
    objApp.Quit
    Set objApp = Nothing
    
End Sub


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

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

- Web Forum -