Como Deixar o UserForm em Fullscreen (Tela Cheia) Mais Ocultar Barra de Título no Excel VBA
Salve, salve eu sou o Diego e hoje eu te ensinarei a como deixar o UserForm em Fullscreen ou Tela Cheia e de quebra ocultar a barra de título e deixar o botão de fechar UserForm no Centro do UserForm no Excel VBA. Nesse teste utilizaremos algumas API (Applications Programming Interface) do Windows para capturar o tamanho da resolução de vídeo do computador e para ocultar ou remover a barra de título do UserForm.
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 Visual Basic Editor (VBE) aberto vá até a barra de menus e clique sobre a seta ao lado do ícone Inserir UserForm e nas opções que apareceram clique em Módulo ou.
3. Você também poderá inserir um Módulo pelo menu Inserir > Módulo.
4. Com o Módulo1 criado basta adicionar o seguinte código:
'Função que retorna a largura e a altura em pixel da resolução de vídeo do computador
Private Declare PtrSafe Function DisplaySize Lib "User32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
'Função que retornará o nome da classe e o nome da Caption do UserForm
Private Declare PtrSafe Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'Função que irá armazenar nome da classe o nome da Caption e o estilo da janela do UserForm
Private Declare PtrSafe Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
'Função que retornará a nova a barra de título ao UserForm
Private Declare PtrSafe Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
'Função que atualiza (redesenha) o UserForm com a nova barra de título
Private Declare PtrSafe Function DrawMenuBar Lib "User32" (ByVal hWnd As Long) As Long
Sub TelaCheia(ObjForm As Object)
'Removendo a Barra de Título do UserForm
'------------------------------------------------------------
'Atribui o novo estilo da barra de título ao UserForm
SetWindowLong FindWindow("ThunderDFrame", ObjForm.Caption), -16, GetWindowLong(FindWindow("ThunderDFrame", ObjForm.Caption), -16) And Not &HC00000
'Atualiza (Redesenha) o UserForm removendo a barra de título
DrawMenuBar FindWindow("ThunderDFrame", ObjForm.Caption)
'Deixando o UserForm em FullScreen ou Tela Cheia
'------------------------------------------------------------
'A Largura do UserForm (ObjForm) recebe a largura de "DisplaySize(0)" em Pixel e multiplica por 0.75 pontos
ObjForm.Width = DisplaySize(0) * 0.75
'A Altura do UserForm (ObjForm) recebe a altura de DisplaySize(1) em Pixel e multiplica por 0.75 pontos
ObjForm.Height = DisplaySize(1) * 0.75
End Sub
Obs: Caso você esteja usando o Excel versão 32bits remova o atributo PtrSafe das funções Private Declare PtrSafe Function... .
5. Agora iremos inserir um UserForm para isso basta clicar no ícone Inserir UserForm que se encontra na barra de menus do ambiente VBE ou.
6. Caso você não esteja vendo o ícone de inserir um novo UserForm basta clicar na seta ao lado do ícone e em seguida clicar sobre UserForm como mostra a imagem abaixo ou.
7. No Menu clique sobre Inserir > UserForm.
8. Com o nosso UserForm criado adicione um botão (na Caixa de ferramentas clique e arraste até o UserForm o Botão de comando) e nas propriedades do botão deixe a Height com 24 pontos o Width com 72 pontos e modifique a Caption para o texto Fechar UserForm.
9. Dê dois cliques sobre o botão que foi renomeado e na nova janela que apareceu coloque o seguinte código dentro da sub Private Sub CommandButton1_Click() ... End Sub:
Private Sub CommandButton1_Click()
'Fecha o UserForm
Unload Me
End Sub
10. Agora selecione o Objeto UserForm, em seguida clique sobre o Procedimento Click e nas opções que apareceram selecione Initialize.
11. Após selecionarmos o Procedimento Initialize uma nova sub surgirá, por enquanto apague somente a sub Private Sub UserForm_Click() ... EndSub pois não a utilizaremos.
12. Dentro da sub Private Sub UserForm_Initialize() ... End Sub insira o seguinte código:
Private Sub UseForm_Initialize()
'Chama a função que deixará o UserForm em Fullscreen ou Tela Cheia
Call TelaCheia(Me)
'Centraliza o botão no centro do UserForm
Me.CommandButton1.Top = (Me.Height / 2) - 12
Me.CommandButton1.Left = (Me.Width / 2) - 36
End Sub
13. Na janela Projeto – VBAProject de dois cliques sobre EstaPasta_de_trabalho.
14. Na nova janela aberta certifique-se que o Objeto Workbook e o Procedimento Open estejam selecionados.
15. Dentro da sub Private Sub Workbook_Open () ... End Sub que foi criada insira o seguinte código:
Private Sub Workbook_Open()
'Exibe o UserForm1 ao iniciar o Excel
UserForm1.Show
End Sub
16. Agora basta salvar o se projeto como tipo Pasta de Trabalho Habilitada para Macro do Excel.
17. Pronto após fechar e abrir o seu projeto o UserForm já inicializará em modo Fullscreen ou Tela Cheia e sem a barra de título e com o botão centralizado.
Comentários
Postar um comentário