Como Minimizar o UserForm Para Barra de Tarefas do Windows Utilizando o Excel VBA

UserForm minimizado na barra de tarefas do windows

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.

Abrindo o ambiente do VBE (Visual Basic Editor)

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.

Inserindo o Módulo pela barra de ferramentas

Na barra de menus clique em Inserir > Módulo.

Inserindo o Módulo pela barra de menus

Dentro da janela Projeto – VBAProject clique com o botão direito do mouse e nas opções que aparecerem clique em Inserir > Módulo.

Inserindo o Módulo pela janela Projeto-VBAProject

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....

Código que minimiza o UserForm para a barra de tarefas do windows

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.

Inserindo o UserForm pela barra de ferramentas

Na barra de menus clique em Inserir > UserForm.

Inserindo o UserForm pela barra de menus

Dentro da janela Projeto – VBAProject clique com o botão direito do mouse e nas opções que aparecerem clique em Inserir > UserForm.

Inserindo o UserForm pela janela Projeto-VBAProject

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.

Exibindo o código do Userform

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.

Inserindo a sub 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

Inserindo o código na ativação do UserForm

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.

Inserindo a sub 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

Inserindo o código no fechamento do UserForm

10 Agora selecione e apague a sub Private Sub UserForm_Click() ... End Sub pois não a utilizaremos.

Apagando a sub Private Sub UserForm_Click

11 Na janela Projeto – VBAProject de dois cliques sobre EstaPasta_de_trabalho.

Abrindo a janela EstaPasta_de_trabalho

12 Na nova janela aberta certifique-se que o Objeto Workbook e o Procedimento Open estejam selecionados.

Selecionado o objeto Workbook e o procedimento Open

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.

Inserindo o código na inicialização do Excel

14 Agora basta salvar o seu projeto como tipo Pasta de Trabalho Habilitada para Macro do Excel.

Salvando o projeto

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).

Habilitando as macros

16 Pronto! O UserForm já iniciará exibindo o botão minimizar e permitindo que o UserForm seja minimizado para barra de tarefas do Windows.

UserForm minimizado na barra de tarefas do windows

Comentários

Postar um comentário

Postagens mais visitadas deste blog

Como Habilitar os Botões Minimizar e Maximizar e Redimensionar o Tamanho do UserForm no Excel VBA

Como Remover o Botão Fechar do UserForm no Excel VBA