3. O mundo das linguagens de programação
http://eteab.com.br/cms/index.php/2012/03/linguagens-de-programacao-mais-utilizadas-fevereiro-2012/
4. What about people who don’t plan to become
programmers? Should they also learn to code?
Programming is changing the way almost every
industry works. Look at farming, for example.
Farmers are using algorithms to determine when and
where to plant crops and water crops. Look at
publishing. Editors are using algorithms to help decide
what news articles should appear on the cover of a
magazine or homepage of a website. And finance has
become much more algorithm-driven as well. We’re
preparing people for a rapidly changing world, one in
which nearly everything is affected by technology.
Program or Perish: Why Everyone Should Learn to Code
By: Richard Sine Mar 13, 2014
6. O que é o Excel?
O Excel é um software que permite criar tabelas e
calcular e analisar dados. Este tipo de software é
chamado de software de planilha eletrônica.
O Excel permite criar tabelas que calculam
automaticamente os totais de valores numéricos
inseridos, imprimir tabelas em layouts
organizados e criar gráficos simples
8. O que é uma Macro?
Uma macro é um pequeno programa que contém uma lista de
instruções a realizar no Excel. Como sendo um repositório de
operações, uma macro pode executar um conjunto de
tarefas através de um único procedimento o qual pode ser
invocado rapidamente.
As instruções que formam o corpo da macro são escritas num código
próprio para que o computador as possa entender, essa linguagem é
designada por VBA – Visual Basic for Applications.
10. Criar Macros
Existem duas possibilidades de criação de
macros:
Através do Gravador de Macros
Trabalhando com o editor de programação em
Visual Basic for Applications (VBA).
12. Antes de gravar uma macro
Verifique se a guia Desenvolvedor está visível na
faixa de opções. Por padrão, a guia Desenvolvedor
não permanece visível; sendo assim, proceda da
seguinte forma:
1. Clique na guia Arquivo, clique em Opções e depois
clique na categoria Personalizar Faixa de Opções.
2. Em Personalizar a Faixa de Opções, na lista Guias
Principais, clique em Desenvolvedor e em OK.
16. Gravar uma macro
2. Execute algumas ações em sua planilha, como digitar um
texto, selecionar colunas ou linhas, ou preencher alguns
dados. (Exemplo)
3. No grupo Código da guia Desenvolvedor, clique em Parar
Gravação
17. Exemplo 1
Faça uma macro para criar o gráfico de uma
função de segundo grau (quadrática)
Crie outros macros, a imaginação é o limite...
18. Examinando uma Macro
Para editar uma macro, no grupo Código da guia
Desenvolvedor, clique em Macros, selecione o
nome da macro gravada e clique em Editar. Isso
inicia o Editor do Visual Basic.
Outra forma de abrir o editor Alt+F11
Examine o código e veja como as ações que você
gravou aparecem codificadas. Alguns códigos
provavelmente serão claros para você, enquanto
outros não.
19. Editor do VBA para Excel
Até aqui você foi capaz de
criar uma macro sem se
preocupar pela
programação dela.
Olhando o código em VBA
você pensará que esta
lendo grego ou chinês,
mas até o final da aula
tenho certeza de que
receberá o dom de línguas
e passara a entender.
20. Salvando pastas de trabalho que contem macros
Na hora de salvar o
seu trabalho que
contem uma ou mais
macros, devem ser
salvados num
arquivo que esteja
habilitado para
macros, este tipo de
arquivo é
denominado com a
extensão XLSM.
21. Trabalhando com o editor de
programação em Visual Basic
for Applications (VBE)
22. Editor de Visual Basic VBA do Excel (VBE)
O que é um Editor de Visual Basic? Podemos dizer que é
um ambiente de desenvolvimento que possibilita você a
trabalhar na redação e edição das macros em VBA.
Para abrir o editor pode usar o menu desenvolvedor ou
teclar Alt+F11.
Para que é Utilizado? Para que possamos através de
formulários e objetos criarmos código de programação
para facilitar a execução de soluções de uma maneira
mais significativa.
24. Acrescentar um módulo
Siga os seguintes passos para acrescentar um novo
módulo
1. No VBE, selecione o nome do projeto na janela de
projetos
2. Selecione na barra de menu Inserir->Módulo
Ou
1. No nome do projeto faça um click direito
2. Selecione Inserir-> Módulo na janela de menu que se abre
25. Criando um módulo
Em geral, um módulo VBA pode conter três tipos de código
Declarações
Procedimentos
sub
Procedimentos
Function
26. Declarações (Comentários)
Uma ou mais declarações de informações que
você fornece ao VBA. Por exemplo, você pode
declarar o tipo de dados para variáveis que você
planeja usar, ou definir algumas outras opções do
módulo.
Os comentários sempre estão precedidos de
apóstrofos.
28. Procedimentos Function
Um grupo de instruções que retorna um valor,
semelhante ao que faz uma fórmula dentro de
uma planilha Excel.
29. Exemplos de possíveis códigos dentro de
um módulo
Declarações
Procedimentos
Function
Procedimentos
SUB
30. Inserindo código VBA em um módulo
É possível inserir código VBA em um módulo de
três diferentes modos:
1. Digitar o código manualmente
2. Usar o gravador de macro do Excel para
transformar as ações gravadas em código VBA
3. Copiar o código de um módulo e colar em outro.
31. Criando código manualmente
Siga os procedimentos abaixo para criar um
procedimento manualmente.
Crie uma nova Pasta de Trabalho no Excel (novo
arquivo).
Pressione ALT+F11 para abrir o VBE.
Clique no nome da Pasta de Trabalho na janela Projeto.
Acesse Inserir > Módulo para inserir um módulo no
projeto.
Digite o seguinte conteúdo dentro do módulo.
33. Personalizando o ambiente VBE
Se você é (ou se tornar) um programador Excel,
você passará boa parte do tempo com os módulos
VBA na tela. Para tornar o ambiente de
desenvolvimento mais confortável, o VBE possui
algumas opções de personalização.
Com o VBE ativo, acesse Ferramentas -> Opções.
Uma janela com quadro abas aparecerá: Editor,
Formado do editor, Geral, e Encaixe.
36. Objeto
A programação orientada a objeto é baseada na
ideia de que os programas consistem em
diferentes objetos que têm atributos (ou
propriedades) e podem ser manipulados. Estes
objetos não são itens materiais, ao contrário eles
existem apenas virtualmente, em forma binária.
37. Hierarquia do modelo de objetos Excel
Application
Workbooks
Workbook
WorkSheets
Range
39. Exemplo – localizando alguma células
Range
Dentro de
Worksheet
Dentro de
Workbook
Dentro do
Excel
Célula Planilha Pasta Excel
40. Coleções
Coleções são agrupamentos de objetos do mesmo
tipo, e a própria coleção também é um objeto.
Exemplos de coleções comuns:
•Workbooks
Coleção de objetos Workbook abertos
•Worksheets
Coleção de todos os objetos Worksheet de um determinado objeto Workbook
(todas as guias de planilhas de um determinado arquivo)
•Charts
Coleção de todos os objetos Chart (guias de gráfico) de um determinado objeto
Workbook
41. Referenciando Objetos
Fazer referência a um objeto no código VBA é
importante, porquê você deve informar qual é o
objeto com o qual você está trabalhando, para
que o programa saiba qual objeto manipular.
Para referenciar um único objeto de uma coleção,
coloca-se o nome do objeto, ou seu índice, entre
parênteses após o nome da coleção.
44. Simplificando referências à objetos
O uso frequente da Referência Totalmente
Qualificada em um código VBA pode deixá-lo
muito longo e um pouco mais difícil de ser lido.
Felizmente, o Excel possui alguns atalhos que
podem simplificar a leitura e a digitação de
código. O objeto Application é sempre assumido
automaticamente, são poucos os casos onde ele é
necessário. Omitindo-o então, a referência
anterior ficaria assim...
45. Navegando pela hierarquia -
Simplificada
Range("A1").Value
Worksheets(1).Range("A1").Value
Workbooks("Curso VBA.xlsm").Worksheets(1).Range("A1").Value
46. Exemplo 3
Usando a hierarquia de objetos selecione
Uma célula
Uma fileira
Uma coluna
49. Propriedades e Métodos de Objetos
Referenciar um objeto é importante, mas quase
nada pode ser feito apenas com sua referência,
para poder manipulá-lo, é necessário proceder
com uma entre duas opções:
Ler ou modificar a propriedade de um objeto.
Especificar um método de ação para ser usado com o
objeto.
50. Entendendo melhor – Objeto Porta
Método
- Abrir
- Fechar
Propriedades
- Cor
- Material
Casa.Quartos(“Recamara1").Portas(1).Abrir
51. Propriedades dos objetos
Todo objeto tem propriedades. Você pode
imaginar as propriedades como atributos que
descrevem u objeto. As propriedades do objeto
determinam sua aparência, seu comportamento,
e até mesmo se ele deve estar ou não visível.
Usando o VBA, é possível realizar duas ações com
as propriedades dos objetos:
Consultar o valor atual de uma propriedade
Alterar o valor de uma propriedade
52. Exemplo 4 – Mostrar o valor
Sub MostraValor()
Conteudo = Worksheets("Plan1").Range("A1").Value
MsgBox Conteudo
End Sub
53. Exemplo 5 – Alterar o valor
Sub AlteraValor()
Worksheets("Plan1").Range("A1").Value = 456.78
End Sub
54. Exemplo 6 – Modificar o tamanho e a cor
Sub propiedadesTamanhoCor()
Range("B2").Select
Range("B2").Interior.Color = RGB(0, 255, 0)
Columns("B:B").ColumnWidth = 18
End Sub
55. Métodos de Objetos
Além das propriedades, objetos também têm
métodos. Um método é uma ação que você pode
executar com um objeto. Um método pode
alterar a propriedade de um objeto ou fazer com
que o objeto faça algo.
56. Exemplo 7 – limpar conteúdo
(ClearContents)
Sub limparConteudo()
Range("A1").ClearContents
End Sub
57. Exemplo 8 – copiar uma célula a outra
Sub CopiarUm()
Worksheets("Plan1").Activate
Range("A1").Copy Range("B1")
End Sub
58. Ajudas
Agora que conhece um pouco sobre objetos,
propriedades, métodos e eventos, você pode se
interessar pelas seguintes ferramentas:
Sistema de Ajuda do VBA (F1)
Pesquisador de objeto (F2)
Listagem automática de propriedades e métodos.
61. Sub e Function
Os códigos VBA que você escreve no Editor do
Visual Basic são conhecidos como procedimentos.
os dois tipos mais comuns de procedimentos são
Sub e Function.
Um procedimento Sub é um grupo de declarações VBA
que executam alguma ação (ou ações) com o Excel.
Um procedimento Function é um grupo de declarações
que executa algum cálculo e retorna um valor.
62. Procedimentos Sub
Todo procedimento Sub inicia com a palavra
chave Sub e termina com a declaração End Sub.
Abaixo, um exemplo.
Sub ExibirMensagem()
MsgBox "Olá pessoal!"
End Sub
63. Procedimentos Function (Exemplo 9)
Todo procedimento Function (função) inicia com a
palavra chave Function e termina com a
declaração End Function. Abaixo, um exemplo:
Function RaizCubica(numero)
RaizCubica = numero ^ (1 / 3)
End Function
65. Algumas forma de executar os
procedimentos
Execução direta
Ative o VBE e selecione o módulo VBA que contém o
procedimento
Posicione o cursor dentro do código (clique em
qualquer parte dentro do código, entre Sub e End Sub)
Pressione F5 (ou acesse Executar > Executar
Sub/UserForm).
Digite o valor solicitado e pressione OK.
66. Algumas forma de executar os
procedimentos
Execução a partir da janela Macro
Ative o Excel.
Acesse Desenvolvedor > Código > Macro (ou
pressione ALT+F8).
Selecione a macro.
Clique em Executar (ou faça um duplo clique
sobre o nome da macro).
67. Algumas forma de executar os
procedimentos
Execução por tecla de atalho
Para executar uma macro usando teclas de
atalho é necessário, antes, definir as teclas de
atalho desejadas para a macro.
Acesse Desenvolvedor > Código > Macros.
Selecione o nome do procedimento.
Coloque no botão Opções.
Clique na opção Tecla de Atalho e digite uma letra (ao
lado de onde está escrito Ctrl+).
68. Algumas forma de executar os
procedimentos
Execução a partir de um botão ou imagem
Uma opção para executar as macros de forma amigável para o
usuário, é vinculá-la a algum botão (ou qualquer tipo de imagem) em
uma planilha. Para isso, siga estes passos:
Ative a planilha.
Selecione Botão nos Controles de Formulário (conforme imagem abaixo).
Em seguida, clique na planilha e arraste para desenhar o botão no tamanho
que desejar.
Após inserir o botão, o Excel mostrará a janela Atribuir macro.
Selecione a macro que deseja associar ao botão.
Clique em OK.
69.
70. Executando procedimentos Function
As funções, diferente das macros Sub, podem ser
executadas em apenas dois modos:
Sendo chamadas por outra macro (Sub ou Function)
Sendo usada como uma fórmula em uma planilha.
'obterNome
'autor Jorge
'metodo abreviado Ctrl+n
Sub obterNome()
Dim resposta As String
resposta = InputBox(Prompt:="Qual e o seu nome?")
If resposta = Empty Then
MsgBox Prompt:="Voce nao digitou seu nome."
Else: MsgBox Prompt:="O seu nome e: " & resposta
End If
End Sub
Um único módulo VBA pode armazenar uma grande quantidade de procedimentos Sub, Function, e declarações. O único limite é a quantidade de caracteres, atualmente 64.000 por módulo. Se precisar usar um grande número de procedimentos, que ultrapasse o limite de caracteres permitido, crie um novo módulo e separe os procedimentos.
O modo como os módulos VBA são organizados dependem apenas de quem os manipula. Algumas pessoas preferem manter todo o código dentro de um único módulo, outras preferem criar um módulo para cada procedimento. Isso é uma escolha pessoal.
Algumas vezes, o melhor jeito é o mais direto. Digitar o código manualmente significa... bem, digitar o código manualmente. Em outras palavras, você digita o código usando seu teclado. A edição de código desta forma funciona como em um editor de textos simples (como o Bloco de Notas). É possível copiar, recortar, colar, entre outros recursos básicos.
A tecla TAB serve para identar as linhas de código de forma a torná-las mais fáceis de serem lidas. Este hábito não é necessário, mas é bom adquirí-lo. Conforme você adentra o mundo da programação, verá como ler um código identado é mais fácil que um código não identado.
Por exemplo, se você deseja fazer algo em algumas células do Excel, que fazem parte de uma determinada parte de uma planilha, usa-se o objeto Range, e para poder entender sua localização, pode-se interpretar deste modo:
Range => dentro de Worksheet => dentro de Workbook => dentro do Excel.
Você pode perceber que as coleções têm seu nome no plural, o que faz sentido, pois são agrupamentos de outros objetos (mesmo que exista apenas um objeto dentro dela).
Você pode trabalhar com uma coleção inteira de objetos de uma única vez, ou você pode trabalhar com um objeto específico em uma coleção (como uma única planilha dentro do arquivo, então, um único objeto Worksheet dentro do objeto Worksheets).
Note que o nome da planilha está entre aspas. Se você não usar aspas, o Excel entenderá que aquilo não é um nome, mas sim uma variável.Se a planilha Plan1 for a primeira (ou única) planilha na coleção, também é possível usar a seguinte referência:
Neste caso, o número não deve ficar entre aspas. Assim, para se referenciar a um objeto pelo seu nome, deve estar entre aspas, mas se usar sua posição (índice), então use apenas o número da posição, sem aspas.
Quando se usa a referência para um objeto Range deste modo, pode-se chamar esta referência de Referência Totalmente Qualificada. O Excel foi informado qual é a célula, de qual planilha, de qual arquivo, com a qual ele deve trabalhar, não deixando de informar etapas da hierarquia.
Quando se usa a referência para um objeto Range deste modo, pode-se chamar esta referência de Referência Totalmente Qualificada. O Excel foi informado qual é a célula, de qual planilha, de qual arquivo, com a qual ele deve trabalhar, não deixando de informar etapas da hierarquia.
Os atalhos exibidos aqui são muito úteis, mas podem também ser perigosos. O que aconteceria se, ao executar o código, um objeto diferente estiver ativo? Provavelmente haveria um erro na execução, ou os valores e resultados poderiam estar incorretos. Portanto, é importante ter em mente o ambiente em que o código será executado, e atribuir as referências até o nível adequado, de acordo com sua necessidade.
A função MsgBox é muito útil, você pode usá-la para exibir resultados quando o Excel executa seu código VBA.
O código anterior exibe o valor atual da propriedade Value de uma célula.
Importante!
Como o VBA é uma linguagem de programação em idioma inglês, todas as referências de valor numérico que usem casas decimais devem usar a formatação neste idioma. Em outras palavras, o separador entre números inteiros e números decimais deve ser um ponto, e não uma vírgula como no idioma português. Isso é válido apenas para valores numéricos inseridos diretamente no código VBA, já nas planilhas do Excel, continua o separador normal do idioma português.
Cada objeto possui seu próprio conjunto de propriedades, embora algumas propriedades sejam comuns entre vários objetos. Por exemplo, muitos (mas não todos) objetos têm a propriedade Visível, muitos também possuem a propriedade Name.
Algumas propriedades de objetos são apenas-leitura, o que significa que você pode consultar seu conteúdo, mas não pode alterá-lo.
Importante!
Como o VBA é uma linguagem de programação em idioma inglês, todas as referências de valor numérico que usem casas decimais devem usar a formatação neste idioma. Em outras palavras, o separador entre números inteiros e números decimais deve ser um ponto, e não uma vírgula como no idioma português. Isso é válido apenas para valores numéricos inseridos diretamente no código VBA, já nas planilhas do Excel, continua o separador normal do idioma português.
Cada objeto possui seu próprio conjunto de propriedades, embora algumas propriedades sejam comuns entre vários objetos. Por exemplo, muitos (mas não todos) objetos têm a propriedade Visível, muitos também possuem a propriedade Name.
Algumas propriedades de objetos são apenas-leitura, o que significa que você pode consultar seu conteúdo, mas não pode alterá-lo.
Alguns métodos precisam de um ou mais argumentos. Um argumento é um valor que pode detalhar a ação a ser executada. O argumento de um método é colocados após o método, separados por um espaço. Múltiplos argumentos são separados entre si usando vírgulas.
O exemplo acima ativa a planilha Plan1 (na pasta de trabalho ativa) e então copia o conteúdo da célula A1 para a B1 usando o método Copy do objeto Range. Neste exemplo, o método Copy possui um argumento, que é o destino da operação de cópia.
Note que na referência ao objeto Range a referência ao objeto Worksheet foi omitida, isso porquê o objeto Worksheet correto foi ativado na declaração anterior, usando o método Activate.
Se você está trabalhando em um módulo VBA e quer informações sobre um determinado objeto, método ou propriedade, posicione o cursor sobre a palavra que você está interessado e pressione F1. Dependendo da sua versão do Excel, um programa de ajuda aparecerá na tela com as informações sobre aquele item posicionado, ou um site se abrirá com o mesmo conteúdo. Em alguns casos, um ou mais exemplos são fornecidos.
O VBE inclui uma ferramenta conhecida por Pesquisador de objeto. Como o nome indica, ele lhe permite navegar pelos objetos disponíveis. Para acessar o Pesquisador de objeto, pressione F2 com o VBE ativo (ou acesse Exibir > Pesquisador de objeto).
Depois de digitar o ponto após a palavra Workbooks, o VBE exibiu uma lista de propriedades e métodos para esta coleção. Depois de digitar a letra C, a lista se resumiu aos itens que começam com esta letra. Selecione o item que quer usar e pressione TAB, ele foi digitado automaticamente, ajudando, inclusive, na garantia de não haver erros na digitação.
A maioria das macros escritas em VBA são procedimentos Sub. Você pode imaginar os procedimentos Sub como se eles fossem comandos, você os executa e algo acontece (claro que, aquilo que acontece dependerá do código VBA dentro do procedimento Sub).
Este é um exemplo de um procedimento chamado ExibirMensagem. Um conjunto de parênteses segue o nome do procedimento. Na maioria dos casos, estes parênteses ficam vazios, entretanto, é possível passar argumentos para os procedimentos Sub a partir de outros procedimentos, se eles forem passados, devem ser listados entre os parênteses.
Macros gravadas usando o gravador de macro são sempre registradas como procedimentos Sub.
O VBA permite que você especifique que tipo de informação (também conhedico como tipo de dado) é retornado por uma função.
Funções só podem ser executadas em dois modos. Executando-a a partir de outro procedimento (Sub ou outra função) ou usada como uma fórmula do Excel.
Não é possível gravar procedimentos Function através do gravador de macros.
É possível atribuir teclas de atalho ao usar o Gravador de Macros, antes de iniciar sua gravação. Mas se você criou um procedimento manualmente, ou não atribiu um atalho de teclado ao usar o gravador, é possível atribuí-lo agora, ou alterá-lo caso já exista.
Quando você vai inserir um botão, note que existem dois tipos de controles, Controles de Formulário e Controles ActiveX. Eles podem se parecer um com o outro, mas são bem diferentes, e de uma forma geral, os Controles de Formulários são mais fáceis de se usar.
Também é possível atribuir a macro a imagens, por exemplo, você pode usar um retângulo para que, ao ser clicado, execute a macro, para isso, siga estes passos: