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: