Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Apostila sobre
Microsoft Excel
CONSIDERAÇÕES INICIAIS
Boa sorte!
Material Didático
1
Linguagem de Programação é uma biblioteca de termos e expressões que utilizamos para
criar um programa. É característica essencial de um programa funcionar dependendo unica-
mente do Sistema Operacional.
2
O VBA é chamado de forma de programação por não possuir todos os requisitos de uma lin-
guagem. No quesito funcionalidade, todos os sistemas em VBA dependem primeiramente do
programa tronco (neste caso o Excel) e conseqüentemente do Sistema Operacional.
3
Softwares comuns são todos os programas populares “produzidos em alta escala” pelas em-
presas de desenvolvimento de sistemas. Exemplo de empresas: Microsoft, Corel. Exemplo de
softwares comuns: Word, Excel, Access, Corel Draw.
4
Esta é uma divisão meramente didática.
Primeira Parte
Formatação
5
Não existe comando avançado oficialmente no Excel, nós qualificamos assim baseado em
sua complexidade e grau de utilização.
6
Usando a Ajuda do Excel procure por formatação de números e observe a utilização do #.
Fórmulas simples
7
O auto preenchimento pode ser realizado posicionando a célula móvel sobre o resultado de
uma fórmula e , logo em seguida, arrastando o sinal de adição localizado no canto direito-
inferior da célula ativa para a direção desejada. Podemos também dar um clique duplo neste
sinal de adição para autopreencher as linhas inferiores.
Funções – Função SE
Neste caso queremos que o próprio Excel regule a porcentagem que se-
rá adotada. Utilizamos o recurso de função no seu Excel. Clique no comando
funções, menu inserir.
Função SE
=SE(C4="M";3%;4%)
Tudo isto pode ser digitado diretamente na célula que deseja obter a
resposta. O usuário deve se atentar para os seguintes detalhes:
Î O nome da função.
------------------------------------------------------------------------------
Início
se (C4=“M”) então
escreva 3%
senão
escreva 4%
fim do se
fim
------------------------------------------------------------------------------
Início
se (Ll4<10) então
escreva 30%
senão
faça se (L4<20) então
escreva 20%
senão
escreva 10%
fim do se
fim do se
fim
------------------------------------------------------------------------------
Fórmulas absolutas
=D4*$K$3
Exemplos explicativos:
Fórmulas Complexas
Filtros
Protegendo Células
No Excel, podemos evitar que nosso documento tenha sua forma origi-
nal modificada. A própria formatação, os dados e fórmulas poderão ser impe-
didos de sofrer alterações através de proteção de cé-
lulas. Neste exemplo queremos proteger os campos
de fórmulas, afinal, os dados sofrem alterações contí-
nuas enquanto as fórmulas permanecerão as mes-
mas.
Protegendo arquivos
Ao trabalhar com o Excel pode ser necessário abrir várias pastas de tra-
balho (arquivos) ao mesmo tempo para manipulá-las. Caso estes arquivos se-
jam freqüentemente acessados concomitantemente podemos usar o comando
salvar área de trabalho, menu arquivo. Isto criará um arquivo que abrirá todos
os outros arquivos, permanecendo as características de arquivo independente
a cada um deles.
=subtotal(9;E4:E30)
Auditoria
Comentários
Gráficos
Tabela dinâmica
3º passo: é a estruturação da
Digitação e Formatação
HOJE
DIA.DA.SEMANA
PROCV
OBSERVAÇÕES:
Validação
Validar uma célula é avisar ao Excel que os dados que poderão ser inse-
ridos na célula tem que seguir o critério previamente informado. A célula B4, da
planilha formulas-funções-validação foi validada para receber somente data,
sendo que esta data deve estar entre os intervalos 01/01/1900 e 31/12/2900.
Ao entrar nesta célula observe a informação cadastrada. Caso insista em pre-
encher com dados diferentes do exigido observará uma mensagem de erro.
Ocultar
Impressão
Observações finais
NO WORD
Negrito, Itálico, Sublinhado CTRL + N, I, S
Centralizar CTRL + E
Selecionar SHIFT + setas direcionais
Início/Fim de linha HOME, END
Início do documento CTRL + HOME
Final do documento CTRL + END
Imprimir CTRL + P
Desfazer CTRL + Z
Apagar uma palavra inteira CTRL + DELETE
Abrir um arquivo CTRL + A
Recortar CTRL + X
Colar CTRL + V
Copiar CTRL + C
Localizar um texto CRTL + L
Ortografia e Gramática F7
Subir/Descer página de vídeo Page Up , Page Down
Ajuda F1
Sobrescrever textos Insert
Copiar visão da tela Print Screen
Interfere no mover o Mouse ALT
Salvar Ctrl + B
Tamanho da Fonte CTRL ] ou CTRL [
Início/final de linha HOME , END
NO EXCEL
Mover até a borda da região atual CTRL + teclas de direção
Mover uma tela para direita ou esquerda ALT + PAGE DOWN , ALT + PAGE
UP
Ativar a planilha da esquerda ou da direita CTRL + PAGE DOWN, CTRL +
PAGE UP
Mover entre pastas de trabalho CTRL +TAB
Travar o movimento da célula SCROLL LOCK
Inserir planilha SHIFT + F11
Exibir caixa de diálogo Macro ALT + F8
Iniciar uma nova linha na mesma célula ALT + ENTER
Repetir última ação F4
Definir nomes CTRL + F3
OBSERVAÇÃO:
No Microsoft Excel, você encontra uma lista de teclas de atalho utilizando a
ajuda (F1), consultando por TECLAS DE ATALHO.
Segunda Parte
CAPÍTULO 4 - INTRODUÇÃO AO VBA
Introdução
Conceitos Iniciais
No excel...
Pelo Nome: Worksheets(“Granbery”)
Pelo Item: Worksheets.item(2)
Diretamente: Activesheet.
Tabela de significados
Observe a tabela abaixo, possui termos utilizados freqüentemente nesta
parte da curso. Alguns significados são simplesmente traduções do inglês para
o português, enquanto outros significados sofreram adaptações para expres-
sarem a sua verdadeira função no Excel.
TERMO SIGNIFICADO
Active Ativo
Add Adicionar
Cell(s) Célula(s)
Column(s) Coluna(s)
Copy Copiar
Count Quantidade,
Current Atual
Entire Tudo
Integer Nº Inteiro
Paste Colar
Region Região
Row(s) Linha(s)
Sheet(s) Planilha(s)
Macro
'
'
'
Selection.NumberFormat = "$#,##0"
End Sub
Traduzindo melhor:
Siga o passo-a-passo para criar uma macro que mescle o texto verti-
calmente chamada de MesclarVertical.
Siga o passo-a-passo para conseguir criar uma macro que realizará a ta-
refa de exibir/ocultar as linhas de grade de uma planilha. Esta macro chamará
TrocarGrade. O objetivo é fazer uma macro que ative e também desative as
linhas de grade.
ActiveWindow.DisplayGridlines = False
End Sub
Quando uma propriedade é definida como false, significa que o outro va-
lor existente para ela é true. E se ela for definida como true obviamente as li-
nhas de grades aparecerão.
Pode-se criar uma macro para colocar as linhas e outra para retirar, co-
mo também pode-se modificar esta macro para que ela mesma coloque e retire
as linhas.
Passo Quatro) Modifique sua macro para que esta fique assim
Sub TrocarGrade()
GradeAtual = ActiveWindow.DisplayGridlines
End Sub
Estando o curso posicionado entre Sub e End Sub, pressione a tecla F5 pa-
ra executar a macro automaticamente ou a tecla F8 para executar a macro
instrução por instrução.
Passo Seis) Mude para o Editor do Visual Basic (VBA). Observe sua
macro, e coloque um espaço seguido do sinal _ (underline, subtraço) para in-
formar que a linha de instrução continua na linha abaixo. Faça sua macro ficar
com esta aparência.
Sub ConverterParaValores()
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False
Application.CutCopyMode = False
End Sub
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
End Sub
Imagine que todo mês você recebe via e-mail um relatório de pedidos do
mês da filial da firma onde trabalha. Este relatório terá que ser modificado para
se enquadrar no seu arquivo de pedidos geral da firma. Esta modificação inclui
em vários passos. Fazer isto uma única vez não é tão trabalhoso, mas, fazer
isto várias vezes, é necessário uma macro para facilitar o serviço.
Passo Um) Comece uma nova pasta de trabalho no Excel e salve-a co-
mo Adaptar.xls. (É importante que o local da gravação seja o mesmo dos ar-
quivos anteriores). Para facilitar a criação da macro abaixo deixe esta pasta
restaurada, e não maximizada.
Sub ImportarArquivo()
Workbooks.OpenText Filename:= _
Origin:=xlWindows, _
StartRow:=4, _
DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), _
Array(8, 1), _
Array(20, 1), _
Array(25, 1), _
Array(39, 1), _
Array(50, 1))
Sheets("RelMes.txt").Select
Sheets("RelMes.txt").Move Before:=Workbooks("adaptar.xls").Sheets(1)
Range("A2").Select
Selection.EntireRow.Delete
Range("A1").Select
End Sub
Passo Um) Este mês o arquivo que será aberto é o RelMes.txt. No pró-
ximo mês você poderá ter que abrir um arquivo com o conteúdo semelhante e
o nome totalmente diferente. Então se faz necessário escolher o arquivo que
será aberto em meio a execução da macro e guardar o nome do arquivo esco-
lhido em uma variável Para isto, copie a instrução a seguir logo acima da
instrução que inicia com Workbooks
Dim MeuArquivo as string
Sub ImportarArquivo()
Workbooks.OpenText Filename:=MeuArquivo, _
Origin:=xlWindows, _
StartRow:=4, _
DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), _
Array(8, 1), _
Array(20, 1), _
Array(25, 1), _
Array(39, 1), _
Array(50, 1))
ActiveSheet.Move Before:=Workbooks("adaptar.xls").Sheets(1)
Range("A2").Select
Selection.EntireRow.Delete
Range("A1").Select
End Sub
• Como a macro foi executada muitas vezes, existe em sua pasta de trabalho
Adaptar várias cópias da RelMês. Por enquanto, deixe-as.
Observe o seu relatório. Este possui alguns espaços vazios que, dedutiva-
mente, representam os mesmos valores da parte superior. Para o Excel isto é
um problema que será resolvido através da macro a seguir.
Passo Sete) Pressione a tecla ESC para sair do modo copiar e selecio-
ne A1.
Range("A1").Select
Selection.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
Selection.CurrentRegion.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Range("A1").Select
End Sub
Para saber de que período são estes pedidos se faz necessário uma
coluna de data. Para criar e preencher esta coluna faça uma macro:
Existe uma instrução que faz uma pergunta ao usuário e aguarda a res-
posta para continuar a execução da tarefa. Esta instrução é uma função9 do
Visual Basic chamada de InputBox (). Basta colocar conforme abaixo:
A conferência do que foi digitado com o que se esperava que fosse digi-
tado não foi programada. A tecla cancelar também não está programada no
momento. Edite a sua macro fazendo as alterações propostas. Finalmente
compare sua macro com o modelo abaixo.
Sub AdicionarColunasDatas()
Range("A1").Select
Selection.EntireColumn.Insert
9
Função: As linguagens de programação possuem “mini-programas” já prontos que realizam tarefas
corriqueiras. Perguntar algo para o usuário é comum para programadores por isso o VBA incorporou esta
função da linguagem VB.
Range("A2").Select
Selection.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = MinhaData
Range("A1").Select
End Sub
Até aqui esta apostila foi dando um passo-a-passo para você criar suas
macro. Para forçar a interpretação, criação e leitura das macros estaremos do-
ravante escrevendo as macros apenas com linhas de comentários. Observe as
duas macros abaixo, realizadas para esta mesma planilha. Vamos interpretá-
las? Observe os comentários. Os nomes dos arquivos poderão ser diferentes.
Sub IncluirAoBancoDeDados()
Range("A1").Select
Selection.EntireRow.Delete
Selection.CurrentRegion.Select
Selection.Copy
Workbooks.Open Filename:= _
ActiveWindow.SmallScroll Down:=64
ActiveWindow.ScrollRow = 1
Columns("A:A").EntireColumn.AutoFit
Selection.End(xlDown).Select
' Selecione a célula que está uma linha abaixo da atual. A célula atual é considerada
a primeira célula (“A1”) desta área atual.
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
'desativei o copiar
Application.CutCopyMode = False
'selecionei a região
Selection.CurrentRegion.Select
Selection.Name = "Database"
ActiveWorkbook.Close savechanges:=True
Range("A1").Select
End Sub
--------------------------------------------------------------------------------------------------
Sub ExcluirPlanilha()
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
End Sub
Já esta na hora de você criar uma macro sozinho. Crie uma para execu-
tar as outras macros desta planilha. Confio em você.
Verificação Imediata
O Visual Basic abre uma tela de Edição de comandos. Tudo o que for
digitado dentro desta tela será automaticamente executado ao se apertar a te-
cla Enter.
Caso queira incluir uma linha vazia entre linhas já escritas utilize o
comando CTRL + ENTER.
Workbooks.Add Workbooks.add
WorkBooks(7).Activate Range("A1:b50").Select
Worksheets(3).select Rows(2).select
Workbooks(5).Activate RAnge("A50").Select
ActiveWorkbook.Close ?ActiveWorkbook.name
?Workbooks.Count Pasta7
1 Fim
Workbooks.Add 1
?Workbooks.count Worksheets.Add
5 Worksheets(array(1,3,5)).select
Pesquisador de Objetos
Este comando ajuda você encontrar objetos que podem ser trabalhados
na sua planilha. Imagine uma situação onde se faz necessário o controle das
linhas escritas no Excel. Será que existe um objeto referente a linhas? A qual
classe este objeto pertence? Quais são suas propriedades e métodos? Usando
o pesquisador de objeto e muita intuição (principalmente no caso de iniciantes
em programação!!!) você descobrirá objetos úteis para determinadas situações.
ActiveSheet.Shapes.AddShape(msoShapeRectangle, _
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 10
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
End Sub
PlanilhaAtiva.Formas.AdicionarForma(Retângulo, _
Selecionado.FormaDaArea.Fomatação.RealcedeCores.TabelaDeCores = 10 (0 à 56)
Selecionado.FormaDaArea.Formatação.Visibilidade = verdadeira
Selecionado.FormaDaArea.Formatação.Sólido
Final da sub-rotina
Forma.Fill.ForeColor.SchemeColor = 10
End Sub
Sub-rotina CriarRetanguloEuMesmo()
Variavel(AgoraObjeto)Forma.Formatação.RealceCores.TabeladeCores = 10
Forma.delete
Final da Sub-Rotina
Charts.Add
ActiveChart.ChartType = xlColumnClustered
End Sub
Referindo ao gráfico
VarOeste.Axes(xlValue).MaximumScaleIsAuto = True
VarLeste.Axes(xlValue).MaximumScale = Va-
rOeste.Axes(xlValue).MaximumScale
End Sub
CAPÍTULO 8
Neste capítulo você poderá alterar os botões e menus do seu Excel, co-
mo também criar novos.
Sub MaisZoom()
numero = ActiveWindow.Zoom + 10
ActiveWindow.Zoom = numero
End If
End Sub
Sub MenosZoom()
numero = ActiveWindow.Zoom - 10
ActiveWindow.Zoom = numero
End If
End Sub
O último botão exibi uma lista de outros controles que poderão ser utili-
zados em nossa planilha.
CAPÍTULO 9
CAPÍTULO 10
Estruturas de Controle
If teste-lógico then
Comando 1
Comando 2
Comando 3
Comando n
Else
Comando A
Comando B
Comando C
Comando ...
End If
Estruturas de Loop
Do While teste-lógico
Comando 1
Comando 2
Comando 3
Comando n
Loop
Estruturas Mistas
INÍCIO
A=?
B=?
C=?
If A>B then
C=A+B
Do While C >= B
B = B +1
A= A + B
Loop
Else
A=C+1
C=B
If A = C then
A=3
C= 1
Do While B > A
A=A+1
Loop
End If
End if
FIM
CAPÍTULO 11
Sub IncluirNome()
Range("B4").Select
Selection.Copy
Sheets("BASE DE DADOS").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
Sheets("TELA PRINCIPAL").Select
Application.CutCopyMode = False
Range("A2:B2").Select
End Sub
As linhas,
---------------------------------------------------------------------------------------
Sub Incluir( )
IncluirNome
IncluirRua
IncluirBairro
IncluirCidade
IncluirUF
IncluirDTCompra
IncluirValor
IncluirDTVenc
IncluirImprimir
End Sub
---------------------------------------------------------------------------------------
Sub PreencherVazios()
Sheets("BASE DE DADOS").Select
Range("A1").Select
Selection.ClearContents
Selection.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "****"
Range("A1").Select
Selection.Value = "NOME"
Selection.End(xlDown).Select
Sheets("TELA PRINCIPAL").Select
Range("A2:B2").Select
End Sub
---------------------------------------------------------------------------------------
'Imprimir
End If
---------------------------------------------------------------------------------------
Incluir
PreencherVazios
End Sub
O botão de inclusão chama pela Sub Incluir, que por sua vez, chama as
rotinas de inclusão de dados. É sempre aconselhável o quebrar uma progra-
mação extensa em vários procedimentos menores e de fácil compreensão. De-
pois de Executa as funções de inclusão de dados a macro Incluir terá sido exe-
cutada, logo em seguida, a macro PreencherVazios, impedindo que algum
campo fique vazio.
---------------------------------------------------------------------------------------
Sub Imprimir()
Worksheets("Base de Dados").Select
Linha = 2
Coluna = 9
End If
Linha = Linha + 1
Loop
End Sub
---------------------------------------------------------------------------------------
CONCLUSÃO
Fim