Impostazione della dimensione della finestra del programma in una macro (Microsoft Excel)
Christopher ha bisogno, all’interno di una macro, di impostare la dimensione della finestra del programma Excel. Sa come impostare la dimensione di un foglio di lavoro all’interno della finestra del programma, ma non è quello di cui ha bisogno. Si chiede come può impostare la dimensione complessiva della finestra del programma, inoltre si assicura di non impostarla più grande della dimensione effettiva dello schermo dell’utente.
Questo può essere fatto abbastanza facilmente se si sa quali oggetti e proprietà usare nella propria macro. L’oggetto che si desidera utilizzare è l’oggetto Application, che fa riferimento all’applicazione Excel. Ecco le proprietà pertinenti:
In alto. * Il pixel dello schermo in cui deve essere posizionato il bordo superiore della finestra dell’applicazione.
Sinistra. * Il pixel dello schermo in cui deve essere posizionato il bordo sinistro della finestra dell’applicazione.
Larghezza. * La larghezza della finestra dell’applicazione, in pixel.
Altezza. * L’altezza della finestra dell’applicazione, in pixel.
Con questi in mente, puoi impostare la posizione e la dimensione della finestra del programma in questo modo:
Sub SetWindowSize1() Application.WindowState = xlNormal Application.Top = 25 Application.Left = 25 Application.Width = 300 Application.Height = 200 End Sub
Questa macro specifica che l’angolo superiore sinistro della finestra del programma si trova a 25 pixel dalla parte superiore dello schermo e 25 pixel dalla sinistra dello schermo. Quindi, la finestra del programma è impostata per essere larga 300 pixel e alta 200 pixel. Notare, inoltre, l’impostazione della proprietà WindowState nella prima della macro. Ciò imposta la finestra in uno stato “normale”, ovvero uno che può essere ridimensionato a qualcosa di più grande di minimizzato e più piccolo di ingrandito. (Se vuoi che la finestra del programma Excel occupi l’intero schermo, imposta semplicemente la proprietà WindowState su xlMaximized e dimentica il resto delle impostazioni nella macro.)
Ovviamente, questa macro imposta la finestra del programma Excel in modo che sia piuttosto piccola.
Con ogni probabilità vorrai che sia più grande, ma non vuoi che sia più grande delle dimensioni dello schermo dell’utente. Il modo più semplice per capire le dimensioni dello schermo dell’utente è semplicemente massimizzare la finestra dell’applicazione Excel e quindi esaminare le proprietà Larghezza e Altezza. È quindi possibile regolare queste cifre in base a dove si desidera posizionare l’angolo superiore sinistro dello schermo e quindi regolare di conseguenza.
Ad esempio, diciamo che vuoi che la finestra del programma inizi a 25, 50 e che sia 1000 x 500. Puoi usare un codice simile al seguente:
Sub SetWindowSize2() Dim iMaxWidth As Integer Dim iMaxHeight As Integer Dim iStartX As Integer Dim iStartY As Integer Dim iDesiredWidth As Integer Dim iDesiredHeight As Integer iStartX = 50 ' Distance from left iStartY = 25 ' Distance from top iDesiredWidth = 1000 iDesiredHeight = 500 With Application .WindowState = xlMaximized iMaxWidth = Application.Width iMaxHeight = Application.Height ' Adjust for starting point iMaxWidth = iMaxWidth - iStartX iMaxHeight = iMaxHeight - iStartY If iDesiredWidth > iMaxWidth Then iDesiredWidth = iMaxWidth End If If iDesiredHeight > iMaxHeight Then iDesiredHeight = iMaxHeight End If .WindowState = xlNormal .Top = iStartY .Left = iStartX .Width = iDesiredWidth .Height = iDesiredHeight End With End Sub
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (10938) si applica a Microsoft Excel 97, 2000, 2002 e 2003.
Puoi trovare una versione di questo suggerimento per l’interfaccia a barra multifunzione di Excel (Excel 2007 e versioni successive) qui: