SlideShare uma empresa Scribd logo
1
VISUAL BASIC PARA APLICAÇÕES
(VBA)
2
ÍNDICE
1. PROJECTOS EM VISUAL BASIC PARA APLICAÇÕES.................... 1
1.1 INTRODUÇÃO ........................................................................................................ 1
1.2 AMBIENTE DE DESENVOLVIMENTO ........................................................................ 1
2. OBJECTOS E COLECÇÕES........................................................................... 3
2.1 OBJECTOS ESPECÍFICOS DOS APLICATIVOS............................................................. 3
2.2 COLECÇÃO............................................................................................................ 4
2.2.1 Aceder a Um Elemento de uma Colecção..................................................... 4
2.2.2 Instrução Específica para Percorrer Uma Colecção.................................... 4
3. SELECÇÃO E INTERVALO ................................................................................... 6
4. PROPRIEDADES DAS CÉLULAS.......................................................................... 7
5. CRIAÇÃO DE APLICAÇÕES VBA ........................................................................ 8
5.1 UTILIZAÇÃO DE FORMULÁRIOS.............................................................................. 8
5.2 INSERÇÃO DE OBJECTOS NA FOLHA DE CÁLCULO................................................... 8
5.2.1 Objectos do VBA .......................................................................................... 8
5.3 ADICIONAR OUTRAS ROTINAS.............................................................................10
5.4 UTILIZAÇÃO DE VARIÁVEIS .................................................................................11
5.5 EXERCÍCIOS ........................................................................................................11
2
1. Projectos em Visual Basic para Aplicações
1.1 Introdução
No Excel é possivel elaborar pequenas rotinas, chamadas macros, sem ter de programar.
Para isso há que recorrer ao gravador de macros do Excel. No entanto, para ser útil, é
geralmente necessário alterar posteriormente o código gravado às necessidades do momento.
Caso não o faça essas macros gravadas ser-lhe-ão de pouca utilidade.
Se o leitor pretende maximizar o potencial do Excel, então terá de programar no Excel, e
para isso serão aqui introduzidos conceitos importantes para programação usando-se o
Visual Basic para Aplicações. As instruções são as mesmas do Vuaisl Basic.
1.2 Ambiente de Desenvolvimento
Desde a versão Excel 97, que se passou a ter na aplicação Excel um ambiente de
desenvolvimento em Visual Basic específico para essa aplicação.
Para se aceder ao ambiente, seleccione a partir da barra de o menus, Tools>Macro>Visual
Basic Editor
1
. Também se pode aceder através do atalho de teclas, Alt+F11. O ambiente do
VBA é mostrado na figura seguinte.
janela de
projecto
janela das
propriedades
Figura 1-1 Ambiente de Desenvolvimento do VBA.
Tem como principais características, permitir permitir vários projectos em simultâneo, e
possuir uma estrutura hierárquica.
1
Também pode tornar visível a barra de ferramentas das Macros, e ter assim sempre disponível botões relativos
ao Visual Basic. Para se inserir essa barra deverá escolher do menu, View>Toolbars>Visual Basic.
3
A janela de Projecto no Excel, lista todos os projectos e seus itens, como exemplificado na
figura seguinte:
Os botões correspondem a:
 View Code (ver janela de código)
 View Object (ver objectos)
 Toggle Folders (projecto por pastas)
Figura 1-2 Janela dos projectos
Como se vê existe um projecto para cada livro, com as folhas destes. Por projecto podem-se
ter os seguintes componentes
2
:
 Objectos do Excel
 Formulários criados pelo programador
 Módulos de código
O código VBA terá de estar associado a estes componentes de um projecto. Logo, todos
eles têm associada uma janela de código, aonde se pode introduzir o respectivo código. Estas
janelas são como editores de texto, bastante simples, e especializados para código VB. Na
parte superior de cada janela especificam-se opções do VB, constantes e variáveis. O
restante espaço serve para as rotinas pré-definidas de eventos, e para as rotinas criadas pelo
programador.
2
Existem também módulos de classe, que não serão aqui abordados.
4
2. Objectos e Colecções
2.1 Objectos Específicos dos Aplicativos
Para além dos objectos do Visual Basic (ex: formulários, botões, etc.) existem objectos
específicos de cada aplicativo que suporta VBA. Estes objectos vão sendo alterados com o
surgimento de novas versões dos aplicativos, por isso é conveniente consultar a respectiva
ajuda (através de F1).
Objectos do Microsoft Excel (Office 2000): são mostrados na figura seguinte.
Figura 2-1 Objectos do Microsoft Excel
Os objectos do Excel da janela de projecto (ver Figura 1-2) estão obviamente relacionados
com alguns destes objectos. Por exemplo, existirá um projecto para cada livro.
Para cada objecto dos tipos livro, folha ou gráfico existem rotinas associadas a cada
evento que esses objectos suportam.
O objecto Application representa a própria aplicação, neste caso o Excel.
Em cada momento existe apenas um livro activo, uma folha activa, etc. O application
possui propriedades que contêm essas informações, por exemplo:
ActiveWorkbook – o livro activo (que está a ser usado)
ActiveSheet - a folha activa do livro activo
ActiveCell – a célula activa
Muitas destas propriedades não necessitam ser antecedidas do especificador application.
Por exemplo, em lugar de Application.ActiveWorkbook.Name, pode-se escrever apenas,
ActiveWorkbook.Name.
5
2.2 Colecção
Alguns dos elementos do modelo de objectos são colecções. Uma colecção é um objecto
que contém outros objectos, normalmente do mesmo tipo. Os mais relevantes são:
Workbooks – livros abertos;
Worksheets – folhas de um livro;
Cells – células.
Para se saber quantos elementos tem uma colecção, todas as colecções possuem a
propriedade Count.
A colecção Cells é uma propriedade que representa todas as células do objecto a que se
aplica. Pode ser aplicada aos objectos aplicação, intervalo (ver mais à frente) e folha.
O objecto folha é um elemento da colecção Worksheets.
2.2.1 Aceder a Um Elemento de uma Colecção
Cada elemento pode ser identificado pelo nome ou por um número de ordem de criação.
Todas as colecções possuem a propriedade Item que permite identificar um elemento da
colecção pela sua posição. Por outro lado, sempre que esta propriedade é a propriedade por
pré-definição, então não é necessário escrevê-la.
Ex: Considerar que o primeiro livro aberto no Excel se chama notas.xls. Então, as duas
expressões seguintes produzem o mesmo resultado.
Workbooks(1) identifica o primeiro livro aberto, e
Workbooks(“notas.xls”) identifica especifica/e o livro notas.xls.
No caso da colecção Cells, para se identificar uma célula em particular, a colecção tanto
pode ser usada de forma unidimensional como bidimensional, sendo neste caso semelhante a
uma matriz, tendo por base a posição 1,1.
ActiveSheet.Cells(1,2) ‘refere-se à célula A2
ActiveSheet.Cells(1) ‘refere-se à célula A1
Associado a cada célula existe a propriedade Value que contém o valor da respectiva
célula.
ActiveSheet.Cells(1,1).value=5 ‘insere 5 na célula A1
Para se se tornar um dado objecto activo usa-se o método Activate.
2.2.2 Instrução Específica para Percorrer Uma Colecção
A instrução For Each repete um bloco de instruções para cada elemento da colecção (ou
vector). A sua sintaxe é:
For Each Elemento In Grupo
[bloco_instruções]
Next [Elemento]
Os componentes da instrução são:
6
Elemento Obrigatório. Uma variável usada para iterar através dos elementos da colecção
(Grupo). Para colecções deve ser do tipo Variant, ou objecto (genérico ou não).
Para vectores apenas pode ser Variant.
Grupo Obrigatório. Nome da colecção ou vector (neste caso não pode ser de tipos
definidos pelo utilizador (com Type)).
bloco_instruções Opcional. Uma ou mais instruções executadas para cada elemento de
Grupo.
Podem-se imbricar estes ciclos, mas cada Elemento deve ser único.
Exemplo1: Escreve o nome de cada livro aberto (colecção Workbooks).
...
For Each livro In Workbooks
MsgBox livro.Name
Next livro
...
3. Selecção e Intervalo
Um intervalo é uma célula ou um conjunto de células num dado intervalo de endereços de
células. Para se representar um intervalo existe uma propriedade própria chamada Range.
Podemos definir o número de intervalos que pretendermos.
Range(“A1”) ‘ Intervalo de apenas uma célula, A1.
Range(“A1”, “C2”) ‘ Intervalo de 6 células, de A1 a C2.
A propriedade Range produz um objecto do tipo Range. Este tipo de objectos também
pode ser obtido por outras formas, por exemplo através da propriedade (colecção) Cells. Um
objecto Range também possui uma propriedade Cells. A propriedade Range aplica-se a uma
folha, a uma aplicação, ou a um objecto Range. Se não se especificar a folha, então aplica-se
à folha activa. Quando a propriedade é aplicada a um objecto Range os endereços são
relativos a este intervalo. Um intervalo de apenas uma célula é idêntico a uma célula.
Alguns exemplos:
Range("A1").Value = Range(“B1”).value
Worksheets("Sheet1").Range("A1").Value = 10
Uma selecção significa a selecção de um objecto numa janela. A propriedade relativa à
selecção chama-se Selection. Aqui interessa-nos a selecção de células. Neste caso Selection
produz um objecto do tipo intervalo (Range). Logo é possível usar uma selecção numa
expressão que espere um objecto do tipo intervalo. Por exemplo, passar uma selecção de
células feita pelo utilizador para uma sub-rotina desenvolvida por nós.
7
Tabela 4-1
4. Propriedades das Células
Frequentemente há necessidade de alterar alguma característica das células, ou do seu
conteúdo. Por exemplo, mudar a cor de fundo, ou o estilo do conteúdo das células.
Para se alterar o conteúdo de uma célula ou intervalo de células, basta alterar a
propriedade respectiva. Por exemplo a mudança de cor do conteúdo consiste em alterar a côr
da fonte para o intervalo.
Exemplo: Formatação da célula activa a negrito.
ActiveCell.Font.Bold = True
Algumas propriedades da fonte:
Processo idêntico ocorre com o interior de uma célula e coma moldura.
Bold Booleana: True activa estilo negrito; False desactiva estilo
Color Cor da fonte.
Italic Booleana: True activa estilo itálico; False desactiva estilo
Size Um valor para o tamenho da fonte (por exemplo 12).
Underline Booleana: True activa estilo sublinhado; False desactiva estilo
8
5. Criação de Aplicações VBA
5.1 Utilização de Formulários
A utilização de formulários em VBA é idêntica à utilização no VB. A caixa de ferramentas
não é visível até que se insira o primeiro formulário. A inserção pode ser feita através do
botão , ou através do menu, Insert>>UserForm. Na figura seguinte é mostrado um
formulário contendo um botão.
Um formulário pode ser chamado a partir de uma qualquer sub-rotina. Quando chamado
ele aparecerá com a folha de cálculo por trás.
A utilização de formulários no VBA é idêntica à utilização no VB, pelo que não será aqui
feita. Uma das diferenças mais significativas reside nos nomes dos objectos. Por exemplo, o
formulário chama-se UserForm em VBA, enquanto se chamava Form em VB.
A abordagem para implementação também deverá ser a já utilizada em Visual Basic.
5.2 Inserção de Objectos na Folha de Cálculo
Em adição aos formulários, também é possível colocar objectos directamente na folha de
cálculo. No Excel esses objectos podem ser de dois tipos: objectos de formulário do Excel, e
objectos VBA da caixa de ferramentas. Estes podem ser inclusivamente misturados. Neste
texto apenas se abordam os objectos VBA.
5.2.1 Objectos do VBA
Utilizando objectos do VBA também se podem colocar objectos na própria folha de
cálculo e depois, caso se pretenda, associá-los a rotinas de eventos desenvolvidas pelo
programador. Existe uma barra de botões com esses objectos. Previamente deverá fazer
aparecer a barra de botões do Visual Basic. Para isso deverá escolher a partir do menu,
9
View>Toolbars>Visual Basic. Nesta barra existem diversos botões como mostrado na figura
seguinte.
Premindo-se o botão faz aparecer a caixa de ferramentas. Da caixa de ferramentas
seleccionam-se os objectos que se pretendem incluir na folha. A passagem ao modo de
desenho é automática assim que se selecciona um controlo da caixa de ferramentas. Após o
desenho dos objectos na folha associa-se-lhes o respectivo código.
Para se associar código ao objecto prime-se duas vezes o botão esquerdo do rato sobre o
objecto, ou se prime o botão direito e escolhe-se a opção “View Code”. Para se alterarem
propriedades do objecto, prime-se o botão direito e escolhe-se a opção “Properties”. As
rotinas associadas aos eventos suportados por esses objectos ficam ligadas automaticamente
no VBA aos objectos folha do excel (por exemplo sheet1).
Os principais objectos do VBA são: a etiqueta (“Label”), a caixa de texto (“TextBox1”) e
o botão (“CommandButton”). O VBA dá o nome aos objectos inseridos na folha de cálculos
adicionando um número sequencial ao tipo de objecto. Por exemplo, a primeira etiqueta terá
o nome “Label1”. Esses objectos são idênticos aos do VB. Tal como no VB esses nomes
podem ser alterados.
Vamos em seguida exemplificar a utilização do botão.
Exemplo 5-1
Elaborar um projecto VBA para somar os valores das células A1 e A2, carregando num botão que
deverá ter sido criado na folha de cálculo. Pretende-se que o resultado surja na célula A3.
Resolução: Para desenhar o botão, selecciona-se o botão da barra e desenha-se o botão no local
pretendido.
Em seguida altere o texto do botão para “Somar”. Agora prima duas vezes o botão esquerdo para
aparecer o editor de VBA aonde se escreverá o código que permite somar os dois valores.
10
Private Sub CommandButton1_Click()
Cells(3,1) = Cells(1,1) + Cells(2,1)
End Sub
Para executar, há que voltar à respectiva folha e após serem preenchidas as células A1 e A2 com
valores, premir o botão “Somar”. Antes, deve ter saído do modo de desenho carregando novamente
no botão .
Como nota final, apesar de ser utilizado o tipo Single, este não tem a precisão adequada,
pelo que se recomenda a utilização do tipo Double.
5.3 Adicionar Outras Rotinas
Poderiam ser adicionadas outras rotinas à janela de código para além das dos eventos
associados aos objectos colocados na(s) folha(s) de cálculo. No caso de se pretender que
essass rotinas sejam utilizadas por rotinas noutras janelas, então essas rotinas deverão ser
desenvolvidas num módulo de código (module). Para fazer surgir um module seguir o menu
do VBA Insert>Module.
Vamos colocar o cálculo da soma numa sub-rotina no módulo module1.
Sub soma2()
Cells(3, 1) = Cells(1, 1) + Cells(2, 1)
End Sub
E alterar a rotina do evento para:
Private Sub CommandButton1_Click()
Call soma2
End Sub
O resultado é mostrado na figura seguinte.
11
5.4 Utilização de Variáveis
A utilização de variáveis é idêntica ao Visual Basic. Por exemplo, para o exemplo anterior
poder-se-ia ter procedido do seguinte modo:
Sub soma2()
Dim n1 As Single, n2 As Single
n1 = Cells(1, 1)
n2 = Cells(2, 1)
Cells(3, 1) = n1+n2
End Sub

Mais conteúdo relacionado

DOC
Apostila curso excel 2003 básico planilhas
PDF
Microsoft Excell Aprenda
PDF
Excel VBA: Aula 12
PPT
apresentação sobre folha de calculo_Excel.ppt
PPS
DOC
Curso de excel 2003
Apostila curso excel 2003 básico planilhas
Microsoft Excell Aprenda
Excel VBA: Aula 12
apresentação sobre folha de calculo_Excel.ppt
Curso de excel 2003

Semelhante a VBA-Excel.pdf (20)

PPS
Microsoft Excel
PDF
introdução ao enterprise architect
DOC
Excel
PPTX
Curso de Macros en Excel (VBA)
PDF
Apostila visual basic
PPT
Excel Basic com VBA - Macros
PDF
Apresentacaosobre vba
PPTX
02 banco de dados relacional
PDF
PDF
Curso Microsoft Excel 2010
PDF
Apostila open office calc
PDF
VB 6.0 1
PDF
Curso de excel
PPT
PPTX
Planilhas excel
PDF
Orientação a objetos java
DOCX
Trabalho de análise e projeto 2
PDF
Excel avaçado 2003
Microsoft Excel
introdução ao enterprise architect
Excel
Curso de Macros en Excel (VBA)
Apostila visual basic
Excel Basic com VBA - Macros
Apresentacaosobre vba
02 banco de dados relacional
Curso Microsoft Excel 2010
Apostila open office calc
VB 6.0 1
Curso de excel
Planilhas excel
Orientação a objetos java
Trabalho de análise e projeto 2
Excel avaçado 2003
Anúncio

Último (7)

DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PDF
Dos requisitos ao código: como criar código rastreável em PHP
PDF
apresentacao introducao computacao ead.pdf
PPTX
Curso de Windows 11 resumido na prática.pptx
PDF
Evolução em código: algoritmos genéticos com PHP
PPTX
Mapeamento de Objeto para Tabela Relacional
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
Dos requisitos ao código: como criar código rastreável em PHP
apresentacao introducao computacao ead.pdf
Curso de Windows 11 resumido na prática.pptx
Evolução em código: algoritmos genéticos com PHP
Mapeamento de Objeto para Tabela Relacional
Anúncio

VBA-Excel.pdf

  • 1. 1 VISUAL BASIC PARA APLICAÇÕES (VBA)
  • 2. 2 ÍNDICE 1. PROJECTOS EM VISUAL BASIC PARA APLICAÇÕES.................... 1 1.1 INTRODUÇÃO ........................................................................................................ 1 1.2 AMBIENTE DE DESENVOLVIMENTO ........................................................................ 1 2. OBJECTOS E COLECÇÕES........................................................................... 3 2.1 OBJECTOS ESPECÍFICOS DOS APLICATIVOS............................................................. 3 2.2 COLECÇÃO............................................................................................................ 4 2.2.1 Aceder a Um Elemento de uma Colecção..................................................... 4 2.2.2 Instrução Específica para Percorrer Uma Colecção.................................... 4 3. SELECÇÃO E INTERVALO ................................................................................... 6 4. PROPRIEDADES DAS CÉLULAS.......................................................................... 7 5. CRIAÇÃO DE APLICAÇÕES VBA ........................................................................ 8 5.1 UTILIZAÇÃO DE FORMULÁRIOS.............................................................................. 8 5.2 INSERÇÃO DE OBJECTOS NA FOLHA DE CÁLCULO................................................... 8 5.2.1 Objectos do VBA .......................................................................................... 8 5.3 ADICIONAR OUTRAS ROTINAS.............................................................................10 5.4 UTILIZAÇÃO DE VARIÁVEIS .................................................................................11 5.5 EXERCÍCIOS ........................................................................................................11
  • 3. 2 1. Projectos em Visual Basic para Aplicações 1.1 Introdução No Excel é possivel elaborar pequenas rotinas, chamadas macros, sem ter de programar. Para isso há que recorrer ao gravador de macros do Excel. No entanto, para ser útil, é geralmente necessário alterar posteriormente o código gravado às necessidades do momento. Caso não o faça essas macros gravadas ser-lhe-ão de pouca utilidade. Se o leitor pretende maximizar o potencial do Excel, então terá de programar no Excel, e para isso serão aqui introduzidos conceitos importantes para programação usando-se o Visual Basic para Aplicações. As instruções são as mesmas do Vuaisl Basic. 1.2 Ambiente de Desenvolvimento Desde a versão Excel 97, que se passou a ter na aplicação Excel um ambiente de desenvolvimento em Visual Basic específico para essa aplicação. Para se aceder ao ambiente, seleccione a partir da barra de o menus, Tools>Macro>Visual Basic Editor 1 . Também se pode aceder através do atalho de teclas, Alt+F11. O ambiente do VBA é mostrado na figura seguinte. janela de projecto janela das propriedades Figura 1-1 Ambiente de Desenvolvimento do VBA. Tem como principais características, permitir permitir vários projectos em simultâneo, e possuir uma estrutura hierárquica. 1 Também pode tornar visível a barra de ferramentas das Macros, e ter assim sempre disponível botões relativos ao Visual Basic. Para se inserir essa barra deverá escolher do menu, View>Toolbars>Visual Basic.
  • 4. 3 A janela de Projecto no Excel, lista todos os projectos e seus itens, como exemplificado na figura seguinte: Os botões correspondem a:  View Code (ver janela de código)  View Object (ver objectos)  Toggle Folders (projecto por pastas) Figura 1-2 Janela dos projectos Como se vê existe um projecto para cada livro, com as folhas destes. Por projecto podem-se ter os seguintes componentes 2 :  Objectos do Excel  Formulários criados pelo programador  Módulos de código O código VBA terá de estar associado a estes componentes de um projecto. Logo, todos eles têm associada uma janela de código, aonde se pode introduzir o respectivo código. Estas janelas são como editores de texto, bastante simples, e especializados para código VB. Na parte superior de cada janela especificam-se opções do VB, constantes e variáveis. O restante espaço serve para as rotinas pré-definidas de eventos, e para as rotinas criadas pelo programador. 2 Existem também módulos de classe, que não serão aqui abordados.
  • 5. 4 2. Objectos e Colecções 2.1 Objectos Específicos dos Aplicativos Para além dos objectos do Visual Basic (ex: formulários, botões, etc.) existem objectos específicos de cada aplicativo que suporta VBA. Estes objectos vão sendo alterados com o surgimento de novas versões dos aplicativos, por isso é conveniente consultar a respectiva ajuda (através de F1). Objectos do Microsoft Excel (Office 2000): são mostrados na figura seguinte. Figura 2-1 Objectos do Microsoft Excel Os objectos do Excel da janela de projecto (ver Figura 1-2) estão obviamente relacionados com alguns destes objectos. Por exemplo, existirá um projecto para cada livro. Para cada objecto dos tipos livro, folha ou gráfico existem rotinas associadas a cada evento que esses objectos suportam. O objecto Application representa a própria aplicação, neste caso o Excel. Em cada momento existe apenas um livro activo, uma folha activa, etc. O application possui propriedades que contêm essas informações, por exemplo: ActiveWorkbook – o livro activo (que está a ser usado) ActiveSheet - a folha activa do livro activo ActiveCell – a célula activa Muitas destas propriedades não necessitam ser antecedidas do especificador application. Por exemplo, em lugar de Application.ActiveWorkbook.Name, pode-se escrever apenas, ActiveWorkbook.Name.
  • 6. 5 2.2 Colecção Alguns dos elementos do modelo de objectos são colecções. Uma colecção é um objecto que contém outros objectos, normalmente do mesmo tipo. Os mais relevantes são: Workbooks – livros abertos; Worksheets – folhas de um livro; Cells – células. Para se saber quantos elementos tem uma colecção, todas as colecções possuem a propriedade Count. A colecção Cells é uma propriedade que representa todas as células do objecto a que se aplica. Pode ser aplicada aos objectos aplicação, intervalo (ver mais à frente) e folha. O objecto folha é um elemento da colecção Worksheets. 2.2.1 Aceder a Um Elemento de uma Colecção Cada elemento pode ser identificado pelo nome ou por um número de ordem de criação. Todas as colecções possuem a propriedade Item que permite identificar um elemento da colecção pela sua posição. Por outro lado, sempre que esta propriedade é a propriedade por pré-definição, então não é necessário escrevê-la. Ex: Considerar que o primeiro livro aberto no Excel se chama notas.xls. Então, as duas expressões seguintes produzem o mesmo resultado. Workbooks(1) identifica o primeiro livro aberto, e Workbooks(“notas.xls”) identifica especifica/e o livro notas.xls. No caso da colecção Cells, para se identificar uma célula em particular, a colecção tanto pode ser usada de forma unidimensional como bidimensional, sendo neste caso semelhante a uma matriz, tendo por base a posição 1,1. ActiveSheet.Cells(1,2) ‘refere-se à célula A2 ActiveSheet.Cells(1) ‘refere-se à célula A1 Associado a cada célula existe a propriedade Value que contém o valor da respectiva célula. ActiveSheet.Cells(1,1).value=5 ‘insere 5 na célula A1 Para se se tornar um dado objecto activo usa-se o método Activate. 2.2.2 Instrução Específica para Percorrer Uma Colecção A instrução For Each repete um bloco de instruções para cada elemento da colecção (ou vector). A sua sintaxe é: For Each Elemento In Grupo [bloco_instruções] Next [Elemento] Os componentes da instrução são:
  • 7. 6 Elemento Obrigatório. Uma variável usada para iterar através dos elementos da colecção (Grupo). Para colecções deve ser do tipo Variant, ou objecto (genérico ou não). Para vectores apenas pode ser Variant. Grupo Obrigatório. Nome da colecção ou vector (neste caso não pode ser de tipos definidos pelo utilizador (com Type)). bloco_instruções Opcional. Uma ou mais instruções executadas para cada elemento de Grupo. Podem-se imbricar estes ciclos, mas cada Elemento deve ser único. Exemplo1: Escreve o nome de cada livro aberto (colecção Workbooks). ... For Each livro In Workbooks MsgBox livro.Name Next livro ... 3. Selecção e Intervalo Um intervalo é uma célula ou um conjunto de células num dado intervalo de endereços de células. Para se representar um intervalo existe uma propriedade própria chamada Range. Podemos definir o número de intervalos que pretendermos. Range(“A1”) ‘ Intervalo de apenas uma célula, A1. Range(“A1”, “C2”) ‘ Intervalo de 6 células, de A1 a C2. A propriedade Range produz um objecto do tipo Range. Este tipo de objectos também pode ser obtido por outras formas, por exemplo através da propriedade (colecção) Cells. Um objecto Range também possui uma propriedade Cells. A propriedade Range aplica-se a uma folha, a uma aplicação, ou a um objecto Range. Se não se especificar a folha, então aplica-se à folha activa. Quando a propriedade é aplicada a um objecto Range os endereços são relativos a este intervalo. Um intervalo de apenas uma célula é idêntico a uma célula. Alguns exemplos: Range("A1").Value = Range(“B1”).value Worksheets("Sheet1").Range("A1").Value = 10 Uma selecção significa a selecção de um objecto numa janela. A propriedade relativa à selecção chama-se Selection. Aqui interessa-nos a selecção de células. Neste caso Selection produz um objecto do tipo intervalo (Range). Logo é possível usar uma selecção numa expressão que espere um objecto do tipo intervalo. Por exemplo, passar uma selecção de células feita pelo utilizador para uma sub-rotina desenvolvida por nós.
  • 8. 7 Tabela 4-1 4. Propriedades das Células Frequentemente há necessidade de alterar alguma característica das células, ou do seu conteúdo. Por exemplo, mudar a cor de fundo, ou o estilo do conteúdo das células. Para se alterar o conteúdo de uma célula ou intervalo de células, basta alterar a propriedade respectiva. Por exemplo a mudança de cor do conteúdo consiste em alterar a côr da fonte para o intervalo. Exemplo: Formatação da célula activa a negrito. ActiveCell.Font.Bold = True Algumas propriedades da fonte: Processo idêntico ocorre com o interior de uma célula e coma moldura. Bold Booleana: True activa estilo negrito; False desactiva estilo Color Cor da fonte. Italic Booleana: True activa estilo itálico; False desactiva estilo Size Um valor para o tamenho da fonte (por exemplo 12). Underline Booleana: True activa estilo sublinhado; False desactiva estilo
  • 9. 8 5. Criação de Aplicações VBA 5.1 Utilização de Formulários A utilização de formulários em VBA é idêntica à utilização no VB. A caixa de ferramentas não é visível até que se insira o primeiro formulário. A inserção pode ser feita através do botão , ou através do menu, Insert>>UserForm. Na figura seguinte é mostrado um formulário contendo um botão. Um formulário pode ser chamado a partir de uma qualquer sub-rotina. Quando chamado ele aparecerá com a folha de cálculo por trás. A utilização de formulários no VBA é idêntica à utilização no VB, pelo que não será aqui feita. Uma das diferenças mais significativas reside nos nomes dos objectos. Por exemplo, o formulário chama-se UserForm em VBA, enquanto se chamava Form em VB. A abordagem para implementação também deverá ser a já utilizada em Visual Basic. 5.2 Inserção de Objectos na Folha de Cálculo Em adição aos formulários, também é possível colocar objectos directamente na folha de cálculo. No Excel esses objectos podem ser de dois tipos: objectos de formulário do Excel, e objectos VBA da caixa de ferramentas. Estes podem ser inclusivamente misturados. Neste texto apenas se abordam os objectos VBA. 5.2.1 Objectos do VBA Utilizando objectos do VBA também se podem colocar objectos na própria folha de cálculo e depois, caso se pretenda, associá-los a rotinas de eventos desenvolvidas pelo programador. Existe uma barra de botões com esses objectos. Previamente deverá fazer aparecer a barra de botões do Visual Basic. Para isso deverá escolher a partir do menu,
  • 10. 9 View>Toolbars>Visual Basic. Nesta barra existem diversos botões como mostrado na figura seguinte. Premindo-se o botão faz aparecer a caixa de ferramentas. Da caixa de ferramentas seleccionam-se os objectos que se pretendem incluir na folha. A passagem ao modo de desenho é automática assim que se selecciona um controlo da caixa de ferramentas. Após o desenho dos objectos na folha associa-se-lhes o respectivo código. Para se associar código ao objecto prime-se duas vezes o botão esquerdo do rato sobre o objecto, ou se prime o botão direito e escolhe-se a opção “View Code”. Para se alterarem propriedades do objecto, prime-se o botão direito e escolhe-se a opção “Properties”. As rotinas associadas aos eventos suportados por esses objectos ficam ligadas automaticamente no VBA aos objectos folha do excel (por exemplo sheet1). Os principais objectos do VBA são: a etiqueta (“Label”), a caixa de texto (“TextBox1”) e o botão (“CommandButton”). O VBA dá o nome aos objectos inseridos na folha de cálculos adicionando um número sequencial ao tipo de objecto. Por exemplo, a primeira etiqueta terá o nome “Label1”. Esses objectos são idênticos aos do VB. Tal como no VB esses nomes podem ser alterados. Vamos em seguida exemplificar a utilização do botão. Exemplo 5-1 Elaborar um projecto VBA para somar os valores das células A1 e A2, carregando num botão que deverá ter sido criado na folha de cálculo. Pretende-se que o resultado surja na célula A3. Resolução: Para desenhar o botão, selecciona-se o botão da barra e desenha-se o botão no local pretendido. Em seguida altere o texto do botão para “Somar”. Agora prima duas vezes o botão esquerdo para aparecer o editor de VBA aonde se escreverá o código que permite somar os dois valores.
  • 11. 10 Private Sub CommandButton1_Click() Cells(3,1) = Cells(1,1) + Cells(2,1) End Sub Para executar, há que voltar à respectiva folha e após serem preenchidas as células A1 e A2 com valores, premir o botão “Somar”. Antes, deve ter saído do modo de desenho carregando novamente no botão . Como nota final, apesar de ser utilizado o tipo Single, este não tem a precisão adequada, pelo que se recomenda a utilização do tipo Double. 5.3 Adicionar Outras Rotinas Poderiam ser adicionadas outras rotinas à janela de código para além das dos eventos associados aos objectos colocados na(s) folha(s) de cálculo. No caso de se pretender que essass rotinas sejam utilizadas por rotinas noutras janelas, então essas rotinas deverão ser desenvolvidas num módulo de código (module). Para fazer surgir um module seguir o menu do VBA Insert>Module. Vamos colocar o cálculo da soma numa sub-rotina no módulo module1. Sub soma2() Cells(3, 1) = Cells(1, 1) + Cells(2, 1) End Sub E alterar a rotina do evento para: Private Sub CommandButton1_Click() Call soma2 End Sub O resultado é mostrado na figura seguinte.
  • 12. 11 5.4 Utilização de Variáveis A utilização de variáveis é idêntica ao Visual Basic. Por exemplo, para o exemplo anterior poder-se-ia ter procedido do seguinte modo: Sub soma2() Dim n1 As Single, n2 As Single n1 = Cells(1, 1) n2 = Cells(2, 1) Cells(3, 1) = n1+n2 End Sub