fevereiro 2012
D S T Q Q S S
« dez    
 1234
567891011
12131415161718
19202122232425
26272829  

Ganhar tempo no Excel com macros

Criar macros no Microsoft Excel é muito simples, basta clicar em “Gravar Macro” e todas as ações que você realizar serão gravadas em formato de código, porém para fazer algo realmente útil e que possa ser utilizado comercialmente é um pouco mais complexo…

As macros do Excel utilizam a linguagem VBA (Visual Basic for Applications) que possui praticamente a mesma sintaxe e comandos do Visual Basic, isto é um grande facilitador, pois o VB é uma linguagem de alto-nível e de fácil aprendizado.

As macros são utilizadas principalmente para a execução de ações repetitivas e muitas vezes, uma pequena adaptação do código gravado automaticamente, já consegue resolver o problema.

Código para inserir e formatar a imagem de cabeçalho de todas as planilhas do Excel com o mesmo tamanho:

  1. Inserir uma imagem na primeira planilha da pasta de trabalho
  2. Clicar em “Gravar Macro”
  3. Faça as modificações de posicionamento e tamanho que achar necessário
  4. Finalizar a gravação da macro
Neste caso eu modifiquei apenas o posicionamento da imagem, de forma que caso alguma linha ou coluna seja redimensionada, a imagem permaneça com a mesma aparência.
O código gerado pela gravação da macro foi o seguinte:
Sub Macro1()
'
' Macro1 Macro
'

'
    ActiveSheet.Shapes.Range(Array("Picture 1")).Select
    Selection.Placement = xlFreeFloating
End Sub

Detalhamento das linhas de código:

Linha 7 – Seleciona a imagem;
Linha 8 – Define a localização como FreeFloating (Não mover ou redimensionar com as células);

 

Agora vamos modificar este código para que esta imagem apareça em todas as planilhas (abas) da sua pasta de trabalho:

Sub Macro1()
'
' Macro1 Macro
'

'
    ActiveSheet.Shapes.Range(Array("Picture 1")).Select
    Selection.Placement = xlFreeFloating
 
    Dim xSht As Worksheet                         'cria um objeto que receberá todas as planilhas
    For Each xSht In ActiveWorkbook.Sheets        'localiza todas as planilhas da pasta de trabalho
        If xSht.Name <> ActiveSheet.Name Then     'verifica se a planilha localizada é diferente da atual
            Selection.Copy                        'copia a imagem
            xSht.Paste                            'cola na planilha destino
        End If
    Next xSht
End Sub

Com pouquíssimas linhas de código modificamos uma macro gravada para realizar uma ação que poderia demorar muito tempo, dependendo da quantidade de planilhas que existam.

Esta não é a melhor forma de se inserir um cabeçalho em uma planilha, existe a opção apropriada para isto nas propriedades da página, mas é uma forma de ilustrar como uma macro gravada pode, com poucas modificações, reduzir muito o tempo que se gasta com determinada tarefa.

 

Marcus Loyola
Bacharel em Sistemas de Informação
www.mloyola.com.br

Deixe um comentário