Como deixar o UserForm em Fullscreen (Tela Cheia) no Excel VBA – Modo 3
Salve, salve eu sou o Diego e hoje eu te ensinarei o terceiro modo de como deixar o UserForm em Fullscreen ou Tela Cheia no Excel VBA. Nesse modo teremos um código um pouco mais complexo em relação aos anteriores pois utilizaremos uma API (Applications Programming Interface) do Windows para facilitar a captura da resolução de vídeo do computador, mas com o objetivo de também podermos utiliza-lo em vários UserForms.
Caso você queira ver ou rever os outros modos utilizados basta clica em um dos links abaixo:
Como deixar o UserForm em Fullscreen (Tela Cheia) no Excel VBA – Modo 1.
Como deixar o UserForm em Fullscreen (Tela Cheia) no Excel VBA – Modo 2.
Para esse nosso terceiro 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 adicione o seguinte código:
'Função que retorna a altura e a largura 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
'Variável SM_CXSCREEN recebe 0 que representa a posição X da resolução de vídeo do computador
Private Const SM_CXSCREEN = 0
'Variável SM_CYSCREEN recebe 1 que representa a posição Y da resolução de vídeo do computador
Private Const SM_CYSCREEN = 1
Sub TelaCheia(ObjForm As Object)
'A Largura do UserForm (ObjForm) recebe a largura de "DisplaySize(SM_CXSCREEN)" em Pixel e multiplica por 0.75 pontos
ObjForm.Width = DisplaySize(SM_CXSCREEN) * 0.75
'A Altura do UserForm (ObjForm) recebe a altura de DisplaySize(SM_CYSCREEN) em Pixel e multiplica por 0.75 pontos
ObjForm.Height = DisplaySize(SM_CYSCREEN) * 0.75
End Sub
Obs: Caso você esteja usando o Excel versão 32bits remova o atributo PtrSafe da função Private Declare PtrSafe Function DisplaySize Lib "User32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long.
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 Inserir UserForm como mostra a imagem abaixo ou.
7. Na barra de menus clique sobre Inserir > UserForm.
8. Com o nosso UserForm criado clique com o botão direito do mouse em cima dele e nas opções que apareceram clique em Exibir Código.
9. 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.
10. 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.
11. Dentro da sub Private Sub UserForm_Initialize() ... End Sub insira o seguinte código:
Private Sub UseForm_Initialize()
'Método que chama as Sub TelaCheia que contém o parâmetro UserForm1
Call TelaCheia(UserForm1)
End Sub
12. Na janela Projeto – VBAProject de dois cliques sobre EstaPasta_de_trabalho.
13. Na nova janela aberta certifique-se que o Objeto Workbook e o Procedimento Open estejam selecionados.
14. Dentro da sub Private Sub Workbook_Open () ... End Sub insira o seguinte código:
Private Sub Workbook_Open()
'Exibe o UserForm1 ao iniciar o Excel
UserForm1.Show
End Sub
15. Agora basta salvar o seu projeto como tipo Pasta de Trabalho Habilitada para Macro do Excel
16. Pronto após iniciar a sua macro salvada o seu UserForm já inicializará em modo Fullscreen ou Tela Cheia.