La macro contiene due blocchi uguali, quindi il primo puo' essere eliminato; probabilmente puo' essere eliminato anche un altro 90% di istruzioni (avendo la pazienza di guardare quali sono impostazioni di default e quali vere utili impostazioni).
Ma questo non risolve il problema dei commenti.
Per fargli digerire l'impostazione
PrintComments = xlPrintInPlace ho dovuto disabilitare la
Application.PrintCommunication = False in testa al blocco.
La proprieta' PrintCommunication e' stata introdotta da Office 2010, e la descrizione dice:
"Impostare la proprietà PrintCommunication su False per velocizzare l'esecuzione del codice che imposta la proprietà PageSetup. Impostare la proprietà PrintCommunication su True dopo avere impostato le proprietà per eseguire il commit di tutti i comandi PageSetup"
Il mio sospetto e' che non tutti i driver di stampante sono "così sofisticati"; poiche' mi pare sia solo una velocizzazione di esecuzione, io direi che possiamo tranquillamente privilegiare una "lenta e corretta" esecuzione...
Ho aggiunto anche in testa la riga per forzare la visualizzazione dei commenti, anche se e' meglio averli gia' visualizzati per valutare la loro posizione sul foglio.
Il codice completo e':
- Codice: Seleziona tutto
Sub stampa3()
'
' stampa2 Macro
'
'
Application.DisplayCommentIndicator = xlCommentAndIndicator
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = ""
''' Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.7)
.RightMargin = Application.InchesToPoints(0.7)
.TopMargin = Application.InchesToPoints(0.75)
.BottomMargin = Application.InchesToPoints(0.75)
.HeaderMargin = Application.InchesToPoints(0.3)
.FooterMargin = Application.InchesToPoints(0.3)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintInPlace
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
Application.PrintCommunication = True
Selection.PrintOut Copies:=1
' ActiveSheet.PageSetup.PrintArea = "$A$3:$AE$27"
ActiveSheet.PageSetup.PrintArea = "$A$3:$AE$21"
End Sub
Ciao