VBA (Excel) - Usando a Câmera : Criando uma Imagem no Excel


Neste artigo vou mostrar como podemos usar a ferramenta Câmera do Excel para criar imagens do Excel e também mostrar como podemos automatizar esta tarefa usando a  linguagem VBA

Sabia que você pode usar o Excel gerar imagens instantâneas de suas planilhas ? 

Sim você pode.

Além disso você pode aliar esse recurso ao poder do VBA e alcançar feitos impressionantes. Vamos então aprender a usar a ferramenta Câmera do Excel.

Para isso vamos realizar as seguintes tarefas:

Antes de ir para parte prática algumas considerações que você deve atentar se estiver iniciando agora com o Excel e com o VBA. Se já estiver familiarizado com esses conceitos vá direto para a parte prática.

Instruções aos novatos (só para que esta começando agora)

O Visual Basic for Applications (VBA) é uma implementação do Visual Basic da Microsoft incorporada em todos os programas do Microsoft Office, bem como em outras aplicações da Microsoft, como o Visio, e que foi também incorporada pelo menos parcialmente em outros programas de terceiros como o AutoCAD, Mathcad e WordPerfect. Ele substitui e estende as capacidades de anteriormente existentes linguagens de programação de macros específicas para as aplicações e pode ser usado para controlar a quase totalidade dos aspectos da aplicação anfitriã, incluindo a manipulação de aspectos do interface do usuário tais como menus e barra das ferramentas e o trabalho com formulários desenhados pelo usuário ou com caixas de diálogo.
http://pt.wikipedia.org/wiki/Visual_Basic_for_Applications

Eu estou usando o Microsoft Office Excel 2007,  o Microsoft Office Outlook 2007 e o sistema operacional Windows 10, e, portanto, o código deste artigo foi testado somente nestas versões e ambiente.

Antes de prosseguir eu sugiro que você leia os seguintes artigos da seção VBA do site Macoratti .net

Os recursos usados no projeto deste artigo foram:

Antes de iniciar temos que realizar duas configurações no Microsoft Excel 2007:

Obs: A necessidade de habilitar a execução de macros é que por padrão, o Excel coloca um nível de segurança mais elevado pois, códigos maliciosos podem ser executados em scripts através de macros no Excel.

Vamos ativar a guia do desenvolvedor e logo  em seguida habilitar a execução de macros.

Para ativar a guia do desenvolvedor (se ainda não estiver ativa) siga os seguintes passos:

Abra o Excel 2007 e ative o Menu principal de opções clicando no botão superior a esquerda, conforme a figura abaixo;

A seguir clique na guia Opções do Excel para abrir a janela - Opções do Excel;

Nesta janela, selecione o item - Mais Usados - e a seguir marque o item - Mostrar guia Desenvolvedor na Faixa de Opções e clique no botão OK;

No menu do Excel selecione a guia do Desenvolvedor e em seguida clique em Segurança de Macro;

Na janela Central de Confiabilidade selecione a opção - Configurações de Macro - e marque o item para habilitar todas as macros conforme a figura abaixo:

Pronto , feito isso já podemos iniciar o desenvolvimento da aplicação VBA no Excel 2007.

Incluindo o ícone da ferramenta Câmera na barra de ferramentas de acesso rápido do Excel

Abra então o Excel 2007, será aberta uma planilha em branco. Clique no botão no canto superior a esquerda para abrir o menu principal de opções;

Selecione a opção Salvar como e clique no item : Pasta de Trabalho Habilitada para Macro do Excel;

Em seguida informe o nome do arquivo : VBA_UsandoCamera

Será aberta o arquivo Excel exibindo as três planilhas padrão: Plan1, Plan2 e Plan3;

1 - Clique na seta para exibir o menu - Personalizar Barra de Ferramentas de Acesso Rápido - e a seguir clique em : Mais Comandos...

2 - Na janela Opções do Excel abra as opções: Escolher comandos em : da caixa de combinação e selecione a opção Comandos Fora da Faixa de Opções...

3- Procure pelo opção Câmera e a selecione. Depois clique no botão Adicionar. Você verá o ícone ser visto na caixa de listagem da direita. Clique no botão OK.

4- Pronto ! Você verá o ícone da Câmera no barra de ferramentas de de acesso rápido:

Agora é só usar o recurso...

Como exemplo temos a seguir uma planilha básica e simples. Selecione o intervalo de células que deseja gerar a imagem e clique no ícone da Câmera:

Depois arraste a seleção e a imagem será exibida, onde você pode copiar, colar, recortar, etc. fazer o que quiser com a imagem.

Usando a Câmera no VBA

Agora vamos automatizar a tarefa de gerar a imagem usando o VBA.

Vamos supor que desejamos tirar 'uma foto' da planilha acima, no intervalo B1 a G6.

Inclua um botão de comando na planilha criada.

Clique na guia do Desenvolvedor e a seguir clique em Inserir e selecione o controle Botão :

Após selecionar o Botão coloque-o na planilha Excel. Fazendo isso de imediato será aberta a janela atribuir macro;

Informe o nome da macro. No exemplo eu usei o nome GerarImagem.

Clique no botão Novo:

O Editor Visual Basic será aberto com um novo módulo criado e a macro pronta para receber o código.

Sub GerarImagem()
     Dim intervalo As Range 
    'define o intervalo
    Set intervalo = Range("B1:G6")   
    'Copia a Imagem do intervalo selecionado
    intervalo.CopyPicture Appearance:=xlScreen, Format:=xlPicture    
    'Cola a imagem a partir da célula indicada
    Range("B8").PasteSpecial
    Application.CutCopyMode = False
End Sub

Temos aqui o código da macro GerarImagem que gera a imagem para o intervalo B1:G6 e cola a imagem a partir da célula B8.

Retorne ao Microsoft Excel e a seguir selecione o botão e altere o nome de Botão 1 para Gerar Imagem:

Pronto ! agora podemos abrir a planilha Excel e clicar no botão Gerar Imagem para obter a imagem:

Pegue a planilha com o código VBA aqui: VBA_UsandoCamera.zip

(Disse Jesus)Este povo se aproxima de mim com a sua boca e me honra com os seus lábios, mas o seu coração está longe de mim.
Mas, em vão me adoram, ensinando doutrinas que são preceitos dos homens.

Mateus 15:8,9

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?


José Carlos Macoratti