Objetivo: Demonstrar como utilizar funcionalidades do Windows no Excel á partir do VBA.
Apesar de tudo o que pode ser feito com programação algumas coisas são muito difíceis de serem implementadas diretamente. Para isso utiliza-se na maioria das vezes as API’s do Windows.
API -> Applications Programming Interface. É um conjunto de interfaces de programação que permitem a utilização de bibliotecas de programação Windows em programas externos ao sistema operacional.
Abaixo algumas das principais bibliotecas disponibilizadas:
Arquivo DLL | Descrição |
KERNEL32 | Gerencia a memória ; multitarefa… |
USER32 | Gerencia mensagens , menus, cursores, comunicações, etc… |
GID32 | Graphics Device Interface – Recursos de desenho , telas e objetos , redimensionamentos… |
COMDL32 | Janelas comuns : impressão , salvar , abrir, … |
WINMM | Recursos multimídia, som , video, … |
Lz32 | Rotinas de compressão e compactação |
Abaixo o código fonte de um exemplo uma API que descobre qual é a resolução de vídeo atual do computador e sugere que seja alterada caso não seja a melhor visualização para o programa:
'Esta declaração deve ficar antes de qualquer sub ou function, caso contrário não funcionará
Declare Function DisplaySize Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
'Identifica a resolução do sistema operacional
Function VideoRes() As String
Dim vidWidth
Dim vidHeight
'Chamada da API do Windows que identifica a resolução da tela
vidWidth = DisplaySize(0)
vidHeight = DisplaySize(1)
Select Case (vidWidth * vidHeight)
Case 307200
VideoRes = "640 x 480"
Case 480000
VideoRes = "800 x 600"
Case 786432
VideoRes = "1024 x 768"
Case 1024000
VideoRes = "1280 x 800"
Case Else
VideoRes = "Outra resolução"
End Select
End Function
'Sub que faz uso da function que identifica a resolução para determinar se ela é adequada
Sub CheckDisplayRes()
Dim VideoInfo As String
Dim Msg1 As String, Msg2 As String, Msg3 As String
VideoInfo = VideoRes
Msg1 = "A resolução atual está configurada em " & VideoInfo & Chr(10)
Msg2 = "A melhor resolução para essa aplicação é 1024 x 768" & Chr(10)
Msg3 = "Ajuste a resolução"
Select Case VideoInfo
Case "640 x 480"
MsgBox Msg1 & Msg2 & Msg3
Case "800 x 600"
MsgBox Msg1 & Msg2
Case "1024 x 768"
MsgBox Msg1
Case "1280 x 800"
MsgBox Msg1 & Msg2
Case Else
MsgBox Msg2 & Msg3
End Select
End Sub
Baixe a planilha
Até a próxima
Marcos Rieper