PROGRAMAÇÃO VBA PARA EXCEL

[Pages:67]SERVI?O NACIONAL DE APRENDIZAGEM COMERCIAL SENAC - RIO GRANDE DO SUL

PROGRAMA??O

VBA PARA EXCEL

Porto Alegre, 2010.

INTRODU??O Esta apostila foi desenvolvida pelo SENAC/RS, para apoio ao aluno durante o

desenvolvimento do curso de Programa??o VBA para Excel.

A disciplina introduz o estudo da Linguagem de Programa??o, destacando a constru??o de Macros e Fun??es do Usu?rio. Abrange os conceitos fundamentais para cria??o de macros e fun??es interagindo com o Excel e outros aplicativos Microsoft.

Este material ? composto de bases te?ricas que abrangem o conte?do program?tico do curso com exemplos da aplica??o.

O conte?do program?tico deste curso foi projetado com o prop?sito de, ao final do curso, tornar o aluno apto a desenvolver macros e fun??es aplicadas para o Excel, com objetivo de otimizar suas tarefas na realiza??o dos seus trabalhos.

Sum?rio

INTRODU??O............................................................................................................................................. 2 VBA PARA EXCEL ...................................................................................................................................... 6

MACROS................................................................................................................................................. 6 ROTINAS P?BLICAS E PRIVADAS .................................................................................................... 6

PASSAGEM DE PAR?METROS ............................................................................................................. 7 PASSAGEM DE PAR?METROS POR VALOR ? BYVAL..................................................................... 7 PASSAGEM DE PAR?METROS POR REFERENCIA ? BYREF.......................................................... 8 CRIAR MACROS................................................................................................................................. 9

PROGRAMA??O ORIENTADA A OBJETOS ........................................................................................ 10 OBJETO............................................................................................................................................ 10 PROPRIEDADES .............................................................................................................................. 11 M?TODOS ........................................................................................................................................ 11 CLASSES E INST?NCIAS ................................................................................................................ 12 EVENTOS ......................................................................................................................................... 13

PROCEDIMENTOS FUNCTION X PROCEDIMENTOS SUB ................................................................. 15 DEFINI??O DE FUNCTION .............................................................................................................. 15 DEFINI??O DE ROTINAS/SUBROTINAS (MACROS) ...................................................................... 18

INPUTBOX E MSGBOX......................................................................................................................... 19 FUN??O INPUTBOX ........................................................................................................................ 19 FUN??O MSGBOX........................................................................................................................... 20 VARI?VEL IMPL?CITA ME ................................................................................................................ 22

OBJETO RANGE................................................................................................................................... 23 PROPRIEDADE NAME ..................................................................................................................... 23 PROPRIEDADE VALUE .................................................................................................................... 23 OBJETO RANGE X M?TODO SELECT ............................................................................................ 24 PROPRIEDADE CELLS .................................................................................................................... 25 PROPRIEDADE ACTIVECELL .......................................................................................................... 26 OBJETO FONT ................................................................................................................................. 27 OBJETO INTERIOR .......................................................................................................................... 27 PROPRIEDADE HORIZONTALALIGNMENT E VERTICALALIGNMENT ........................................... 28 PROPRIEDADES COLOR E COLORINDEX ..................................................................................... 29 COLE??O BORDERS ...................................................................................................................... 30 PROPRIEDADE LINESTYLE E WEIGHT .......................................................................................... 31 PROPRIEDADE COUNT................................................................................................................... 31 PROPRIEDADE COLUMN E ROW.................................................................................................... 32 PROPRIEDADE COLUMNS E ROWS ............................................................................................... 32 PROPRIEDADE RESIZE................................................................................................................... 32 PROPRIEDADE ADDRESS............................................................................................................... 32

PROPRIEDADE OFFSET.................................................................................................................. 33 FUN??O ISEMPTY........................................................................................................................... 33 M?TODO ACTIVATE ........................................................................................................................ 33 M?TODO COPY................................................................................................................................ 34 M?TODO DELETE ............................................................................................................................ 34 M?TODO MERGE............................................................................................................................. 34 M?TODO CLEAR.............................................................................................................................. 34 M?TODO SORT................................................................................................................................ 34 OBJETO WORKSHEET......................................................................................................................... 36 PROPRIEDADE CODENAME ........................................................................................................... 37 PROPRIEDADE NAME ..................................................................................................................... 37 PROPRIEDADE VISIBLE .................................................................................................................. 37 PROPRIEDADE ACTIVESHEET ....................................................................................................... 38 M?TODO ADD .................................................................................................................................. 38 M?TODO ACTIVATE ........................................................................................................................ 39 M?TODO COPY................................................................................................................................ 39 M?TODO DELETE ............................................................................................................................ 39 M?TODO MOVE ............................................................................................................................... 40 M?TODO SELECT............................................................................................................................ 40 EVENTO DE UM WORKSHEET........................................................................................................ 40 EVENTO ACTIVATE ......................................................................................................................... 41 EVENTO DEACTIVATE..................................................................................................................... 41 EVENTO BEFOREDOUBLECLICK.................................................................................................... 41 EVENTO BEFORERIGHTCLICK ....................................................................................................... 42 EVENTO CALCULATE ...................................................................................................................... 42 EVENTO CHANGE ........................................................................................................................... 43 EVENTO SELECTIONCHANGE........................................................................................................ 43 OBJETO WORKBOOK .......................................................................................................................... 45 PROPRIEDADE FULLNAME............................................................................................................. 45 PROPRIEDADE PATH ...................................................................................................................... 45 M?TODO ADD .................................................................................................................................. 46 M?TODO ACTIVATE ........................................................................................................................ 46 M?TODO CLOSE.............................................................................................................................. 46 M?TODO SAVE ................................................................................................................................ 47 EVENTOS DE UM WORKBOOK ....................................................................................................... 47 EVENTO ACTIVATE ......................................................................................................................... 47 EVENTO OPEN ................................................................................................................................ 47 EVENTO NEWSHEET....................................................................................................................... 48 EVENTO SHEETCHANGE ................................................................................................................ 48 OBJETO APPLICATION ........................................................................................................................ 49 PROPRIEDADE THISWORKBOOK................................................................................................... 49

PROPRIEDADE DISPLAYALERTS ................................................................................................... 49 PROPRIEDADE SCREENUPDATING ............................................................................................... 50 M?TODO QUIT ................................................................................................................................. 50 M?TODO ONKEY ............................................................................................................................. 51 VARI?VEIS DO TIPO OBJETO ............................................................................................................. 52 SUPLEMENTOS.................................................................................................................................... 54 CONVERTENDO UMA PASTA DE TRABALHO EM UM SUPLEMENTO........................................... 54 INSTALANDO O SUPLEMENTO ....................................................................................................... 56 FECHANDO SUPLEMENTOS ........................................................................................................... 58 USERFORMS........................................................................................................................................ 59 CONTROLES DE INTERFACE.......................................................................................................... 60 M?TODOS DE UM USERFORM ....................................................................................................... 63 EVENTOS EM UM USERFORM........................................................................................................ 63 CRIANDO UM USERFORM .............................................................................................................. 64 PROGRAMANDO O USERFORM ..................................................................................................... 64 PROGRAMANDO CONTROLES ....................................................................................................... 65 REFER?NCIAS BIBLIOGRAFICAS ........................................................................................................... 67

VBA PARA EXCEL MACROS

Macro ? um pequeno programa tamb?m denominado de Rotina que cont?m uma lista de instru??es a realizar no Excel, que pode ser classificada como: Sub-rotina, Fun??o ou Procedimento de evento. Quando se trata de facilitar tarefas repetitivas, longas ou um conjunto de tarefas, as rotinas resolvem o problema. Pode ser composta por uma lista armazenada de dois ou mais comandos de aplica??es que, quando acionada por um programa, reproduz os comandos que foram programados.

As instru??es que formam o corpo da rotina s?o escritas num c?digo pr?prio para que o computador as possa entender, essa linguagem ? designada por VBA ? Visual Basic for Applications. O VBA ? uma poderosa ferramenta, para automatizar alguns procedimentos que, geralmente facilitam nosso trabalho em diversas situa??es.

ROTINAS P?BLICAS E PRIVADAS

As rotinas p?blicas (Public) podem ser chamadas dentro de qualquer rotina e de qualquer parte do projeto, como m?dulos, formul?rios, objetos. Tamb?m ficam dispon?veis em outro projeto aberto, desde que voc? adicione a refer?ncia a esse projeto.

As rotinas privadas (Private), s? podem ser executadas no m?dulo onde foram escritas. Elas s? podem ser chamadas dentro das rotinas que perten?am ao mesmo m?dulo ou objeto. Quando chamadas a partir de outro m?dulo, ocorrer? o erro: "Sub ou Function n?o definida".

Sub-rotinas e fun??es s?o p?blicas por padr?o. Caso n?o queira que sejam p?blicas, ? necess?rio que declare usando a palavra-chave Private Sub ou Private Function.

Procedimentos de evento s?o privados por padr?o, a palavra-chave Private ? automaticamente inserida antes da declara??o do procedimento (Private Sub evento).

Sintaxe Sub-rotinas:

Public Sub ( ) End Sub

Private Sub ( ) End Sub

Sintaxe Fun??es:

Public Function (argumentos) =

End Function

Private Function (argumentos) =

End Function

OBS.: Sub-rotinas s?o p?blicas por padr?o, portanto n?o ? obrigat?rio escrever a palavra-chave Public, podemos apenas escrever Sub .

PASSAGEM DE PAR?METROS

Ao declarar uma fun??o ou procedimento, ? poss?vel declarar um ou mais argumentos. Ao utilizar uma fun??o ou procedimento, voc? deve informar os valores para os argumentos, na mesma ordem em que foram definidos durante a declara??o da fun??o ou procedimento. Este processo ? conhecido como passagem de par?metros para a fun??o ou procedimento, ou seja, ao chamar a fun??o ou procedimento, passamos valores que ser?o utilizados pelo c?digo da fun??o ou procedimento.

Existem duas maneiras diferentes de fazer a passagem dos par?metros, que s?o passagem por valor - ByVal e passagem por refer?ncia ? ByRef.

PASSAGEM DE PAR?METROS POR VALOR ? BYVAL

Quando declarar os argumentos de uma fun??o/procedimento, n?o ? necess?rio usar a palavra ByVal j? que os argumentos assumem automatricamente a op??o ByVal, pois este ? o m?todo padr?o. As duas declara??es a seguir s?o equivalentes:

Sub Dobro(Num As Integer) Ou

Sub Dobro(ByVal Num As Integer) Na segunda declara??o, explicitamente, usa-se a op??o ByVal, para indicar que o

par?metro Num ser? passado por valor.

O que significa a passagem de um par?metro por valor?

Na passagem de par?metro por valor, ao iniciar a execu??o, a fun??o faz uma c?pia dos valores passados para serem utilizados nas opera??es. Supondo que o valor passado para a fun??o fosse uma vari?vel criada por voc?. Uma c?pia deste valor seria efetuada durante a execu??o da fun??o, n?o alterando em nada o valor original de sua vari?vel. Significa que o procedimento receber? apenas o valor do par?metro e n?o uma refer?ncia ao endere?o de mem?ria onde est? armazenado o valor do par?metro.

Para entender melhor este conceito, o exemplo abaixo mostra uma fun??o principal chamada Sub Passagem_valor, na qual uma vari?vel X ? declarada, do tipo Integer, e inicializada, esta vari?vel passa, por valor, o par?metro para o procedimento Sub Dobro.

PROGRAMA??O VBA PARA EXCEL

7

Sub Passagem_valor() Dim x As Integer x = 3 MsgBox " Valor dado a variavel X ? : " & x

'Aqui estou chamando a procedure que vai dobrar o valor de x (sub Dobro)

Dobro (x) MsgBox "Valor de X Ap?s a Execu??o: " & x End Sub Sub Dobro(ByVal Num As Integer)

MsgBox " Valor passado como par?metro:" & Num Num = Num * 2 MsgBox "Dobro do valor:" & Num End Sub

Na pr?tica, ao passar um par?metro por valor, voc? passa apenas uma c?pia do valor da vari?vel e ? nesta c?pia que a fun??o/procedimento chamado trabalha, sem afetar o valor original da vari?vel passada como par?metro.

PASSAGEM DE PAR?METROS POR REFERENCIA ? BYREF

Para poder alterar o valor original de uma vari?vel, a fun??o/procedimento, tem que receber o par?metro por refer?ncia ? ByRef, ou seja, a fun??o/procedimento tem que receber uma refer?ncia ao endere?o de mem?ria da vari?vel passada como par?metro e n?o uma simples c?pia do valor da vari?vel . Ao receber um par?metro por refer?ncia (ByRef), as altera??es que a fun??o/procedimento fizer, ser?o feitas diretamente na vari?vel original, pois agora, a fun??o/procedimento tem acesso ao endere?o da vari?vel na mem?ria e n?o mais apenas uma c?pia do seu valor.

Para que um procedimento possa receber um par?metro por refer?ncia, voc? deve utilizar a palavra ByRef, conforme o exemplo a seguir:

Public Sub DobraValor(ByRef Num As Integer)

Para entender melhor este conceito, o exemplo abaixo mostra uma fun??o principal chamada Sub Passagem_Ref, na qual uma vari?vel Y ? declarada, do tipo Integer e inicializada, em seguida ? passada, por refer?ncia, como par?metro para o procedimento Dobro_Ref.

PROGRAMA??O VBA PARA EXCEL

8

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download