Прозрачная форма в VBA (регулировка прозрачности формы)

В данной статье собрано несколько примеров установки прозрачности форм (UserForm)

Во всех файлах для установки прозрачности используется WinAPI функция SetLayeredWindowAttributes

Примеры взять с форума ПланетаExcel, и немного переработаны.

Прозрачность форм можно задавать в широком диапазоне - от 0 (полностью прозрачная форма) до 255 (непрозрачная)

Также добавлен пример установки прозрачности самого Excel:
(перед запуском формы, окно Excel плавно «расстворяется» (исчезает), а после закрытия формы также плавно появляется вновь)

Sub ПлавноеИзменениеПрозрачностиExcel()
    hWnd& = GetActiveWindow    ' hWnd приложения Excel
    Dim prozr As Long
 
    ' в течение нескольких секунд, постепенно делаем Excel прозрачным
    For prozr = 255 To 0 Step -4
        DoEvents
        SetTransparent hWnd&, prozr     ' изменяем прозрачность Excel
    Next
 
    UserForm1.Show    ' отбражаем модальную форму

    ' в течение нескольких секунд, постепенно делаем Excel снова видимым
    For prozr = 0 To 255 Step 4
        DoEvents
        SetTransparent hWnd&, prozr   ' изменяем прозрачность Excel
    Next
    SetVisible hWnd&, 255   ' восстанавливаем видимость Excel
End Sub

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Здравствуйте, Константин.
Если это и возможно сделать (в чём я сомневаюсь, т.к. элементы управления на форме VBA не имеют hWnd), — то очень сложно.
В любом случае, с этим помочь не смогу.

А как сделать, чтобы только форма была прозрачна, а не элементы управления на ней

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
  _                             _  _              
| | __ ___ _ __ __ _ | || | __ __
| |/ / / __| | '_ \ / _` | | || |_ \ \ /\ / /
| < | (__ | |_) | | (_| | |__ _| \ V V /
|_|\_\ \___| | .__/ \__,_| |_| \_/\_/
|_|
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.