Mudando o ícone do aplicativo com VBA

maio 4th, 2008 by Tomás Vásquez

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/



0 Responses to “Mudando o ícone do aplicativo com VBA”

  1. No Comments

Leave a Response