Calcolare la distanza tra la parte superiore della finestra e la riga 1

Quando crea un Form utente, Luigi imposta la proprietà Top del UserForm su 222, che ha determinato per tentativi ed errori essere la distanza in pixel tra il bordo superiore della finestra attiva e la parte superiore della prima riga di dati nel foglio di lavoro. Si chiede se esista un modo per calcolare questa distanza in modo programmatico, dato che la distanza può variare a seconda della “quantità” di barra multifunzione visualizzata e dell’altezza della barra della formula.

Se hai bisogno di ottenere l’altezza dell’area della Barra Multifunzione, puoi esaminare la proprietà Height dell’oggetto CommandBars(“Ribbon”), in questo modo:

 

iHt = CommandBars("Ribbon").Height

 

Questo, ovviamente, ti darà solo una parte delle informazioni di cui hai bisogno in definitiva. Le informazioni sul posizionamento per un form utente si basano sull’angolo superiore sinistro della finestra del programma. Pertanto, è necessario tenere conto dello spessore del bordo della finestra (se è presente un bordo), dell’altezza della Barra Multifunzione (menzionata sopra, ma solo se si esegue una versione di Excel che utilizza la Barra Multifunzione), dell’altezza della barra della formula, lo spazio consentito per il righello e così via.

La maggior parte di queste cose non ha proprietà di altezza che puoi controllare, quindi il posizionamento di un form utente può essere un processo di tentativi ed errori. Una volta che il Form Utente è posizionato correttamente sul tuo sistema, non c’è alcuna garanzia che sarà posizionato correttamente se visualizzato sul sistema di qualcun altro.

La soluzione migliore che abbiamo trovato è (in questo caso) non reinventare la ruota. Chip Pearson, sul suo sito Web, ha creato quello che chiama un “posizionatore di form” che elimina le congetture dal posizionamento di un form utente. Puoi trovare informazioni al riguardo a questa pagina.

Non ci sono costi; è gratis. Ti permette di posizionare una UserForm relativamente a qualsiasi cella sullo schermo. Se sviluppi macro che si basano su UserForms, ti consigliamo di verificare cosa ha da offrire Chip.

 

Tags: , ,

Ti è stato utile?