Как отображать изображения PNG с прозрачным фоном в пользовательской форме Excel VBA - PullRequest
0 голосов
/ 09 июля 2020

Я использую VBA в Excel для создания пользовательской формы. Я хотел бы отобразить в этой пользовательской форме изображение с прозрачным фоном в формате PNG. Первоначально я получал сообщение об ошибке, потому что VBA изначально не поддерживает формат PNG, поэтому я обнаружил, что если я ссылаюсь на Microsoft Windows Image Acquisition Library v2.0 и использую следующий код, VBA может отображать изображение PNG в ImageControl.

Sub ShowForm()
    UserForm1.Image1.Picture = loadImg("C:\Temp\Logo.png")
    UserForm1.Show
End Sub

Function loadImg(fileLocation As String) As IPictureDisp
Dim imgctrl As New WIA.ImageFile         'can handle more extensions than built in LoadPicture function
With imgctrl
    .LoadFile fileLocation
    Set loadImg = .fileData.Picture
End With
Set imgctrl = Nothing
End Function

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

...