Instalando um plugin no MS Excel. Arquivos xlam

Passo 1) Navegue até opções do MS Excel;

Opções do Excel

Passo 2) Escolha suplementos do excel na combo box e clique em ir;

Suplementos do Excel

Passo 3) Procure pelo suplemento (arquivo de extensão xlam) e insira-o na lista;

Instalar suplementos

Passo 4) Confirme a lista;

Confirme plugin

Passo 5) Verifique no código VBA se o suplemento está referenciado. Olhe no retângulo laranja como o projeto apareceu.

Plugin Instalado

 

Publicado em Excel, Visual Basic 6.0 e VBA | Etiquetas , , , | Publicar um comentário

Exportando Imagens e Gráficos do MS Access para o MS Word

Se você possui imagens salvas em uma tabela do seu banco de dados MS Access ou possui gráficos em seus formulários ou Pivot Charts e deseja colocar tudo isso em um documento do MS Word veja o exemplo:

Access Exporta Imagem e Grafico para Word

(o exemplo contido no link acima é meramente ilustrativo e o seu código VBA está protegido).

Caso se interesse, entre em contato:

 

Publicado em Visual Basic 6.0 e VBA | Etiquetas , , , , | Publicar um comentário

VBA varargs 2

Esse exemplo

Function Substitui(ParamArray var() As Variant) As String
 Dim i As Integer
 Dim str As Variant
 
 On Error Resume Next
 str = var(0)
 On Error GoTo 0
 
 For i = LBound(var) + 1 To UBound(var)
    str = Replace(str, "{" & i & "}", var(i), , , vbTextCompare)
 Next i
 Substitui = str
End Function

 

Uso:

?Substitui(“O {1} está estudando {2} e pretende passar na {3}“, “Henrique”, “música”, “EMESP”)
O Henrique está estudando música e pretende passar na EMESP

Faça o download do código e da planilha de exemplo VBA VARARGS 2.xlsm

Publicado em Visual Basic 6.0 e VBA | Etiquetas , | Publicar um comentário

VBA varargs

Function Soma(ByVal par1 As String, ParamArray var() As Variant) As Double
 Dim i As Integer
 Dim tmp As Double
   For i = LBound(var) To UBound(var)
     If IsNumeric(var(i)) Then tmp = tmp + var(i)
   Next
 Soma = tmp
 Debug.Print par1
End Function

Veja:
https://msdn.microsoft.com/pt-br/library/ct363x9h.aspx

Uso:
?soma("pedro",1,2,3)
Publicado em Visual Basic 6.0 e VBA | Etiquetas , | Publicar um comentário

MS Access Runtime e Trust Center (Central de Confiabilidade)

Toda vez que você abre um programa do MS Access e o mesmo possui macros gravadas você recebe uma mensagem de segurança da seguinte forma:

Trust Center

Mensagem para o MS Access Runtime

Trust Center2

Mensagem para o MS Access

No MS Access (sem ser o runtime) você pode ir na Central de Segurança e definir locais de onde se pode abrir os arquivos sem que essa mensagem seja exibida.

Central de Confiabilidade

Abrindo a Central de Confiabilidade do MS Access e definindo locais confiáveis

Mas, e se você estiver apenas usando o Runtime do MS Access ?  Não será possível acessar a Central de Confiabilidade conforme figura acima… Bom, neste caso, resta uma alternativa: editar o registro do Windows:

Editando Registro para Central de Confiabilidade

Cada Location é um local confiável para o MS Access para o usuário em questão.

* se quiser baixar o Runtime do MS Access 2007 clique aqui

Fonte: http://www.accessribbon.de/en/?Trust_Center:Trusted_Locations

Trusted Locations

You can add folders to trusted locations from “Office Button” / “Access Options” / “Trust Center” / “Trust Center Settings…” / “Trusted Locations”

The entries will be stored in the registry under:

Access 2007:

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Access\Security\Trusted Locations]

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Access\Security\Trusted Locations\Location(n)]

Access 2010:

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Security\Trusted Locations]

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Security\Trusted Locations\Location(n)]

 

Access 2013:

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Access\Security\Trusted Locations]

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Access\Security\Trusted Locations\Location(n)]

 

Access 2016:

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Access\Security\Trusted Locations]

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Access\Security\Trusted Locations\Location(n)]

 

“Path”=”C:\PathToDB\”
“AllowSubfolders”=dword:00000001
“Description”=”The description”
“Date”=”01.01.2007 12:00”

For each trusted folder an entry with following keys will be created in the registry:

 Pah: Path of trusted location (ending with „\“)
 AllowSubfolders: Determines whether subfolders are trusted as well (0=No; 1=Yes).
 Description: Free description.
 Date: Date of last update (Format: DD.MM.YYYY hh:nn)
Publicado em MS Access | Etiquetas , | Publicar um comentário

Chamando uma Macro específica ao Iniciar o MS Access

Muitos já conhecem a macro denominada autoexec, que serve para ser executada quando um arquivo do MS Access é aberto (com duplo click).

Mas e se for desejado que ao chamar o programa seja executada uma macro específica ?

Escrevi este pequeno arquivo de extensão BAT do windows que abre um programa do MS Access e chama uma macro específica:

"Importa.accdb" /x mcrImportSilent
 type log.txt
 pause

A primeira linha abre o programa e através da instrução  /x mcrImportSilent  executa a macro  mcrImportSilent.

A segunda linha lê no console um arquivo gerado pelo programa chamado log.txt

A terceira linha pausa para que o console não seja fechado seja permitido ler o que foi escrito nele.

Veja também:

Artigo que explica as opções da linha de comando

Publicado em MS Access | Etiquetas , | Publicar um comentário

Download com VBA, código que faz download da internet

Só tenho a intensão de demonstrar com esta planilha que é possível se fazer download de arquivos da Internet com VBA (Visual Basic for Applications)

PlanilhaFazerDownload

Faça o download da planilha em:
PlanilhaFazerDownload.zip

Publicado em Visual Basic 6.0 e VBA | Etiquetas | Publicar um comentário

Método de Trabalho

Sou um “cara” que, atualmente, programa em VBA mas levando os conceitos de programação orientada a objetos aplicados no Java. Posso citar duas grandes vantagens de programar desta maneira:

(1) Reutilização de código:

  • permite o reaproveitamento de maneira muito mais fácil (sem copiar e colar) de código;
  • poupa horas de trabalho por “reinventar a roda”, consequentemente, economiza dinheiro;
  • em outras palavras, permite-se criar uma infra-estrutura de trabalho (ferramentas) para cumprir tarefas recorrentes.

(2) Estética do código:

  • mantem responsabilidade de código bem definida, ou seja, fica fácil saber o propósito de determinado código;
  • consequentemente facilita a manutenção;
  • evita aquele “código macarrônico” bastante conhecido da programação estruturada. Defino este tipo de código como procedimentos imensos que possuem e modificam diversas variáveis e fazem muitas coisas em uma única chamada.

 

Programação Orientada a Objetos

Programação Estruturada

No VBA (Programação O. Objetos)

Métodos Procedimentos e funções É possível
Instâncias de variáveis Variáveis É possível
Mensagens Chamadas a procedimentos e funções É possível
Classes Tipos de dados definidos pelo usuário É possível
Herança não disponível NÃO É POSSÍVEL (infelizmente)
Polimorfismo não disponível É possível através de interfaces

Se quiser saber mais sobre o assunto, clique aqui

Se quiser entrar em contato, clique aqui

Se quiser aulas de informática mesmo que a distância, clique aqui

Publicado em Metodologias e Processos, OOAD e POO | Etiquetas , , , | 2 Comentários

Interpretando CAPTCHA com VBA e serviço Web

Sabe aquelas imagens que aparecem em sites nos obrigando a digitar o código para que demos sequência a um procedimento, sendo este, principalmente relacionado a algo de segurança tipo: autenticação, recuperação de senha, sites do governo, etc … ? Chama-se captcha.

captcha sample.png O objetivo disso é garantir que nenhum  programa “robô”, de sequência automatizada a tal procedimento. Apenas um ser humano seria capaz de ler o que está escrito na imagem e transcrever para um campo.

Existe um serviço web chamado anti-captcha.com/ que faz a interpretação desta imagem e nos retorna o que está escrito.

Desenvolvi um código VBA que interage com esta API (Application Programming Interface) conforme pode ser observado nessa imagem abaixo:

Antigate - detecção de Capcha.png

Quer saber mais ?

Publicado em Visual Basic 6.0 e VBA | Etiquetas , , , , , | Publicar um comentário

Como entrar em modo de segurança no Windows 8

Muito legal este vídeo (que não é de minha autoria) explicando o comando para entrar em modo de segurança no Windows 8.

Publicado em Dicas, Java | Etiquetas , | Publicar um comentário