Como Minimizar o UserForm Para Barra de Tarefas do Windows Utilizando o Excel VBA
Salve, salve eu sou o Diego e hoje eu te ensinarei a como minimizar o UserForm na barra de tarefas do Windows Utilizando o Excel VBA. Neste método nós utilizaremos algumas API (Applications Programming Interface) do Windows para podermos exibir o botão minimizar e permitir que o UserForm seja minimizado para barra de tarefas do Windows.
Veja Também:
Como Colocar um Ícone no UserForm no Excel VBA
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 recupera as informações sobre o nome da classe e o estilo da janela do UserForm
Private Declare PtrSafe Function GetWindowLongA Lib "User32" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
'Função que altera o estilo da janela do UserForm
Private Declare PtrSafe Function SetWindowLongA Lib "User32" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) 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 BarradeTarefas(ObjForm As Object)
'Código que atribui o botão minimizar ao UserForm
SetWindowLongA FindWindowA("ThunderDFrame", ObjForm.Caption), -16, GetWindowLongA(FindWindowA("ThunderDFrame", ObjForm.Caption), -16) Or &H20000
'Código que permite a minimização do UserForm para a barra de tarefas
SetWindowLongA FindWindowA("ThunderDFrame", ObjForm.Caption), -20, GetWindowLongA(FindWindowA("ThunderDFrame", ObjForm.Caption), -20) Or &H40000
'Código que atualiza o UserForm exibindo o botão minimizar e permitindo a minimização para barra de tarefas
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 Activate.
7 Dentro da sub Private Sub UserForm_Activate() ... End Sub insira o seguinte código:
Private Sub UserForm_Activate()
'Código que chama a sub que irá atribuir o código necessário para minimizar o UserForm na barra de tarefas do Windows
Call BarradeTarefas(Me)
End Sub
8 Após inserir o código e certifique-se que o Objeto UserForm esteja ainda selecionado, clique sobre o Procedimento Activate e nas opções que apareceram selecione QueryClose.
9 Dentro da sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) ... End Sub insira o seguinte código:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Código que exibe o Excel quando o UserForm for fechado
Application.Visible = True
End Sub
10 Agora selecione e apague a sub Private Sub UserForm_Click() ... End Sub pois não a utilizaremos.
11 Na janela Projeto – VBAProject de dois cliques sobre EstaPasta_de_trabalho.
12 Na nova janela aberta certifique-se que o Objeto Workbook e o Procedimento Open estejam selecionados.
13 Dentro da sub Private Sub Workbook_Open () ... End Sub insira o seguinte código:
Private Sub Workbook_Open()
'Código que força a Maximização do Excel ao ser inicializado
Application.WindowState = xlMaximized
'Código que oculta o Excel
Application.Visible = False
'Código que exibe o UserForm1
UserForm1.Show
End Sub
Dica: Caso você queira deixar o Excel em fullscreen (tela cheia) ao invés de maximizado quando ele estiver totalmente carregado, basta trocar o comando Application.WindowState=xlMaximmized por Application.DisplayFullScreen = True.
14 Agora basta salvar o seu projeto como tipo Pasta de Trabalho Habilitada para Macro do Excel.
15 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).
16 Pronto! O UserForm já iniciará exibindo o botão minimizar e permitindo que o UserForm seja minimizado para barra de tarefas do Windows.
Showw, parabens
ResponderExcluirMuito Bomm!! Me ajudou bastante!!!
ResponderExcluir