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