Mudando o ícone do aplicativo com VBA

O VBA permite manipular diversas propriedades do aplicativo em que está hospedado.

Porém, quando avançamos no desenvolvimento, é interessante poder personalizar o aplicativo de modo completo. Suítes de desenvolvimento mais avançados como o Visual Studio e Delphi permite fazer isso facilmente. No VBA isso também é possível, porém com um pouco mais de trabalho.

O código abaixo troca o ícone do aplicativo para um determinado arquivo do tipo .ico:

Declare Function GetActiveWindow32 Lib "USER32" Alias _
        "GetActiveWindow" () As Integer
 
Declare Function SendMessage32 Lib "USER32" Alias _
        "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
        ByVal wParam As Long, ByVal lParam As Long) As Long
 
Declare Function ExtractIcon32 Lib "SHELL32.DLL" Alias _
        "ExtractIconA" (ByVal hInst As Long, _
                        ByVal lpszExeFileName As String, _
                        ByVal nIconIndex As Long) As Long
 
Sub ChangeApplicationIcon()
 
    Dim Icon&
 
    'Troca o ícone
    Const NewIcon$ = "c:\temp\app.ico"
 
    Icon = ExtractIcon32(0, NewIcon, 0)
    SendMessage32 GetActiveWindow32(), &H80, 1, Icon
    SendMessage32 GetActiveWindow32(), &H80, 0, Icon
 
End Sub

O código faz referência a um arquivo .ico, porém, é possível referenciar arquivos do tipo .dll e .exe que possuam ícones agregados como a calculadora do Windows. Para testar, troque o valor “C:\temp\app.ico” para “calc.exe”.

Atenção: Se executar o aplicativo no contexto do VBA, clicando em F5, o ícone alterado será o do próprio Visual Basic Editor.

Abraços

Tomás Vásquez

Fonte: http://j-walk.com/ss/

Comentários

comentários