Найти ширину полосы прокрутки Excel

Activewindow.UsableWidth дает мне ширину экрана с включенной шириной вертикальной полосы прокрутки. Есть ли способ, которым я могу рассчитать ширину полосы прокрутки? Я измерил его, используя одну форму, которая будет UsableWidth, а другую форму - тем, что я на самом деле вижу, а разницу составляет ширина полосы прокрутки. Мне интересно, есть ли способ автоматизировать его, чтобы он мог использоваться пользователем с более высоким или низким разрешением и, следовательно, с меньшей или большей полосой прокрутки.

Спасибо!

1 ответ

Решение

Если вы хотите найти значение ширины вертикальной полосы прокрутки, вы можете использовать вызов Windows API:

Declare Function GetSystemMetrics32 Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long

Public Const SM_CXVSCROLL = 2

______________________________________

Sub ShowVScrollWidth()

    Dim lVScrollWidth As Long

    lVScrollWidth = GetSystemMetrics32(SM_CXVSCROLL)

    Debug.Print lVScrollWidth

End Sub

(Адаптировано из информации на этой странице. Дополнительную информацию о доступных параметрах GetSystemMetrics можно найти на этой странице MSDN.)

Другие вопросы по тегам