Odczyt dostępnej rozdzielczości ekranu z poziomu VBA

W celu dynamicznego dostosowania własnej aplikacji do rozdzielczości ekranu musimy tą rozdzielczość jakoś odczytać. Fajnie by było jeszcze wiedzieć, czy cały ekran jest dla nas dostępny (trzeba uwzględnić np pasek zadań). Można się tego dowiedzieć używając funkcji Windows GetSystemMetrics:

Private Declare Function GetSystemMetrics _
    Lib "user32.dll" (ByVal nIndex As Long) As Long
'--
 
Sub RozdzielczoscEkranu()
 
    'rozdzielczość nominalna
    Const POZIOMA_NOMINALNA = 0
    Const PIONOWA_NOMINALNA = 1
 
    'rozdzielczość z odliczeniem
    'paska zadań
    Const POZIOMA_DOSTEPNA = 16
    Const PIONOWA_DOSTEPNA = 17
 
    Debug.Print "POZIOMA_NOMINALNA: " & _
        GetSystemMetrics(POZIOMA_NOMINALNA)
    Debug.Print "PIONOWA_NOMINALNA: " & _
        GetSystemMetrics(PIONOWA_NOMINALNA)
    Debug.Print "POZIOMA_DOSTEPNA: " & _
        GetSystemMetrics(POZIOMA_DOSTEPNA)
    Debug.Print "PIONOWA_DOSTEPNA: " & _
        GetSystemMetrics(PIONOWA_DOSTEPNA)
 
End Sub