API’s do Windows no Excel com VBA

Renomear Arquivos com VBA Excel
Renomear Arquivos com VBA Excel
27 de fevereiro de 2011
Bloquear Uso de Planilhas Verificando o Nome do Computador
Bloquear Uso de Planilhas Verificando o Nome do Computador
8 de março de 2011

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

Até a próxima

Marcos Rieper


Clique aqui e leia mais sobre Excel VBA. https://www.guiadoexcel.com.br/vba/ O Guia do Excel foi criado por Marcos Rieper e oferece artigos, dicas, tutoriais e modelos de planilhas prontas. Aqui você encontra tudo sobre Excel, seja de nível básico, intermediário,  avançado e VBA. O Guia do Excel oferece diversos materiais completamente gratuitos para download. Navegue em nosso site e confira! Conheça também a nossa Loja do Excel https://loja.guiadoexcel.com.br/
Cursos

Curso Excel Completo – Curso Excel Básico + Curso Excel Avançado – Acesso Vitalício

R$218,00 R$179,00

COMPRAR
Cursos

Curso Excel Master – Curso Excel Básico + Curso Excel Avançado + Curso VBA Excel + LP – Acesso Vitalício

R$357,00 R$249,00

COMPRAR
Cursos

Curso Excel PRO – Curso Excel Avançado + Curso VBA Excel + Lógica de programação – Acesso Vitalício

R$258,00 R$199,00

COMPRAR
Cursos

Curso Excel Web – Curso VBA Excel + Lógica de programação + Curso Web Scraping VBA- Acesso Vitalício

R$388,90 R$309,00

COMPRAR

1 Comentário

  1. Elias disse:

    Marcos,
    tenho uma rotina que abre a calculadora do Windows. Quando o usuário solicita nova abertura, a rotina checa se a calculadora já está aberta para que outra aplicação não seja aberta. Porém, a intenção é que a calculadora já aberta seja mostrada na tela para que o usuário use a mesma aplicação. Já tentei diversas API’s ou combinações das mesmas, porém, sem sucesso. Alguma sugestão?

    Abraço.

    Elias

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.