Прозрачная форма в 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 КБ83 года 34 недели назад
Плавное появление и исчезание формы VBA47 КБ14310 недель 2 дня назад
Плавно исчезающий Excel на время работы с формой50.5 КБ83 года 34 недели назад

Комментарии

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

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

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

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

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

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

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

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