Como Colocar um Ícone no UserForm no Excel VBA
Salve, salve eu sou o Diego e hoje eu te ensinarei a como colocar um ícone no UserForm no Excel VBA. Neste método nós utilizaremos algumas API (Applications Programming Interface) do Windows para poder inserir o ícone na barra de título do UserForm e assim deixa-lo com um aspecto elegante e profissional.
Para esse nosso teste eu estarei utilizando o Excel 2013 versão 64bits.
Com o Excel aberto basta seguir o passo a passo mostrado abaixo:
1. Clique na aba Desenvolvedor (caso a aba Desenvolvedor esteja desabilitado clique aqui e veja o tutorial como habilita-la) em seguida clique no botão Visual Basic ou utilize as teclas de atalho do teclado ALT + F11.
2. Com o VBE (Visual Basic Editor) aberto iremos inserir um Módulo, basta escolher um dos métodos abaixo que funcionará perfeitamente:
Na barra de ferramentas clique sobre a seta ao lado do ícone Inserir UserForm e nas opções que aparecerem clique em Módulo.
Dentro da janela Projeto – VBAProject clique com o botão direito do mouse e nas opções que aparecerem clique em Inserir > Módulo.
3. Dentro do Módulo1 que foi criado coloque o seguinte código:
'Função que retornará um identificador para o UserForm que possui o nome da classe e o nome do UserForm
Private Declare PtrSafe Function FindWindowA Lib "User32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'Função que retornará um identificador para o ícone especificado
Private Declare PtrSafe Function ExtractIconA Lib "Shell32.dll" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
'Função que atribui o ícone ao UserForm
Private Declare PtrSafe Function SendMessageA Lib "User32" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
'Função que redesenha a barra de título do UserForm
Private Declare PtrSafe Function DrawMenuBar Lib "User32" (ByVal hWnd As Long) As Long
Sub ExibirIcone(ObjForm As Object)
Dim Icone As Long
'Variável que armazena a imagem .ico
Icone = ExtractIconA(0, "CAMINHO_DA_IMAGEM.ico", 0)
'Código que atribui o ícone com tamanho 16x16 ao UserForm
SendMessageA FindWindowA("ThunderDFrame", ObjForm.Caption), &H80, False, Icone
'Código que atribui o ícone com tamanho 32x32 ao UserForm
SendMessageA FindWindowA("ThunderDFrame", ObjForm.Caption), &H80, True, Icone
'Código que atualiza o UserForm exibindo o ícone
DrawMenuBar FindWindowA("ThunderDFrame", ObjForm.Caption)
End Sub
Obs.: Caso você esteja usando o Excel versão 32bits remova o atributo PtrSafe das funções Private Declare PtrSafe Function....
4. Agora iremos inserir um UserForm para isso basta você escolher uma das opções abaixo:
Na barra de ferramentas clique sobre o ícone Inserir UserForm (caso você não esteja vendo o ícone de inserir um UserForm basta clicar na seta ao lado do ícone) como mostra na imagem abaixo.
Dentro da janela Projeto – VBAProject clique com o botão direito do mouse e nas opções que aparecerem clique em Inserir > UserForm.
5. Com o nosso UserForm criado de dois cliques sobre ele ou clique com o botão direito do mouse em cima dele e nas opções que aparecerem clique em Exibir Código.
6. Na janela que apareceu certifique-se que o Objeto UserForm esteja selecionado, em seguida clique sobre o Procedimento Click e nas opções que apareceram selecione Initialize.
7. Selecione e apague a sub Private Sub UserForm_Click() ... End Sub pois não a utilizaremos.
8. Dentro da sub Private Sub UserForm_Initialize() ... End Sub insira o seguinte código:
Private Sub UseForm_Initialize()
'Código que chama a sub que irá atribuir o ícone ao UserForm ao ser inicializado
Call ExibirIcone(Me)
End Sub
9. Na janela Projeto – VBAProject de dois cliques sobre EstaPasta_de_trabalho.
10. Na nova janela aberta certifique-se que o Objeto Workbook e o Procedimento Open estejam selecionados.
11. Dentro da sub Private Sub Workbook_Open () ... End Sub insira o seguinte código:
Private Sub Workbook_Open()
'Força a Maximização do Excel ao ser inicializado
Application.WindowState = xlMaximized
'Exibe o UserForm1
UserForm1.Show
End Sub
Dica: Caso você queira deixar o Excel em fullscreen (tela cheia) ao invés de maximizado ao ser aberto, basta trocar o comando Application.WindowState=xlMaximmized por Application.DisplayFullScreen = True.
12. Agora basta salvar o seu projeto como tipo Pasta de Trabalho Habilitada para Macro do Excel.
13. Após salvar o seu projeto feche-o e abra-o novamente (caso as macros do Excel estejam desabilitadas basta clicar no botão Habilitar Conteúdo).
14. Pronto! O UserForm já iniciará exibindo o ícone na barra de título.
Comentários
Postar um comentário