Прозрачная форма в 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

ВложениеРазмерЗагрузкиПоследняя загрузка
Регулировка прозрачности формы (от 0 до 255)35.5 КБ85 лет 12 недель назад
Плавное появление и исчезание формы VBA47 КБ1431 год 41 неделя назад
Плавно исчезающий Excel на время работы с формой50.5 КБ85 лет 12 недель назад

Комментарии

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

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

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

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

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

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

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

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