excel e vba - · pdf fileescopo da apresentação integração do vba...

Download EXCEL e VBA - · PDF fileEscopo da Apresentação Integração do VBA com Excel Descriççpgção do ambiente de programação do VBA Conceitos básicos de programaçãoConceitos

If you can't read please download the document

Upload: duongkien

Post on 06-Feb-2018

226 views

Category:

Documents


1 download

TRANSCRIPT

  • EXCEL e VBA

    Visual Basic for Applications

    Tutoriais de VBA

  • Escopo da ApresentaoEscopo da Apresentao

    Integrao do VBA com ExcelDescrio do ambiente de programao do p g VBAConceitos bsicos de programaoConceitos bsicos de programaoExemplos usando VBA

    Tutoriais de VBA

  • Background do BASICBackground do BASIC

    BASIC = Beginners All-Purpose Symbolic Instruction Codeg p y

    Linguagem criada no incio dos anos 60.

    1991 Microsoft lana o VB para aplicaes standalone.1995 Microsoft lana Office 95 cujas aplicaes (Excel, Word,

    PowerPoint, etc) incluem VBA.

    VBA = Visual Basic for Applications linguagem script comum paraVBA Visual Basic for Applications linguagem script comum paratodas as aplicaes da Microsoft.

    Tutoriais de VBA

  • Motivao para se usar o VBAMotivao para se usar o VBA

    Excel Um programa muito eficiente (Sem concorrente!!)

    C l t E lComplemento para o ExcelVBA

    LOOPS: ineficiente no Excel eficiente no VBALOOPS: ineficiente no Excel, eficiente no VBA

    Tutoriais de VBA

  • Ambiente de ProgramaoAmbiente de Programao

    Nenhuma instalao extra necessria para se usar o VBA

    P VBA D l d Cdi MPara acessar o VBA v: Desenvolvedor Cdigo Macro

    Tutoriais de VBA

  • SeguranaCli b t d Offi O d E l N j l O

    SeguranaClique no boto do Office e em Opes do Excel. Na janela Opesdo Excel clique em Central de Confiabilidade e a seguir emConfiguraoes da Central de Confiabilidade. Marque o botoHabilitar todas as MACROS.

    Tutoriais de VBA

  • Visual Basic Editor (VBE)Visual Basic Editor (VBE)VBE pode ser acessado indo para: guia Desenvolvedor grupoCdigo Visual Basic ou pressionando Alt + F11

    Tutoriais de VBA

  • Criando um Mdulo em VBACriando um Mdulo em VBAPara iniciar a programao devemos primeiro criar um Mdulo na pasta

    (Workbook)

    Tutoriais de VBA

  • Janela ImediataA J l I di t d d i d E ibi J l V ifi

    Janela ImediataA Janela Imediata pode ser acesssada indo a: Exibir Janela Verificaoimediata ou pressionando Ctrl + G. Ela como uma Janela Command Window

    Tutoriais de VBA

  • Objetos Bsicos do VBAE t bj t i f t t d d VBA

    Objetos Bsicos do VBAEstes so os objetos mais freqentemente usados do VBA:

    Range: refere-se a uma clula particular do Excel. Exemplo:Range("a2") Value=3Range( a2 ).Value=3

    Cells: uma outra maneira de se referir a uma clula particular do Excel.Exemplo:

    Cells(2,2).Value=6Cells(2,2).Value 6Worksheets: refere-se a uma planilha particular do Excel. Exemplo:

    Worksheets(Plan3").SelectWorksheetfunction: chama as funes disponveis do Excel. p

    Exemplo: Worksheetfunction.Fact(3)MsgBox: mostra uma mensagem no Excel. Exemplo:

    MsgBox Application.Name? t lt d i l t N J l I di t?: mostra um resultado, varivel, etc Na Janela Imediata.

    Exemplo:a=Worksheetfunction.Fact(3)? a

    Tutoriais de VBA

    ? a6

  • VariveisVariveis

    Elas contm dados temporriosPodemos pensar nas variveis como clulas do ExcelPodemos pensar nas variveis como clulas do Excel armazenaddas na memria RAM do PCEmbora no seja obrigatrio, uma BOA prtica de programaodefinir o tipo de informao que as variveis armazenaro (emexecues longas ela economiza UM POUCO de tempo). Isto chamado declarar uma varivelO tipo de informao que podemos armazenar numa variveldepende do tipo de dados escolhido para aquela varivel

    Tutoriais de VBA

  • Tipos de Dados do VBA (I)Tipos de Dados do VBA (I)

    Byte: armazena inteiros sem sinais entre 0 e 225Boolean: armazena Verdadeiro ou FalsoInteger: armazena inteiros entre -32.768 e 32.767Long: armazena inteiros entre -2.147.483.648 e 2.147.483.647C i t i l d 10 000 tCurrency: armazena inteiros na escala de 10.000 entre -922.337.203.685.477,5808 e 922.337.203.685.477,5807Single: armazena nmeros de ponto flutuante entre -3,402823E38 e g p ,-1,401298E-45 para valores negativos e entre 1,401298E-45 e 3,402823E38 para valores positivosDouble: armazena nmeros de pontos flutuantes entreDouble: armazena nmeros de pontos flutuantes entre 1,79769313486231E308 e -4,94065645841247E-324 para valoresnegativos e entre 4,94065645841247E-324 e 1 79769313486232E308 l iti

    Tutoriais de VBA

    1,79769313486232E308 para valores positivos

  • Tipos de Dados do VBA (II)Tipos de Dados do VBA (II)

    Date: armazena datas (nmeros de pontos flutuantes) entre 1 Janeiro de 100 e 31 de Dezembro de 9999 e tempo entre 0:00:00 e 23:59:59String: armazena string de caracteres. Existem duas espcies de strings:strings:

    Strings de tamanhos variveis: podem conterr at 2.000 milhes(2^31) de caracteresStrings de tamanho fixo: podem conter entre 1 e 64 KB (2^16) caracteres

    Object: armazena endereos que se referem a outros objetosObject: armazena endereos que se referem a outros objetosVariant (predeterminada): tipo de dado default para cada varivelque no declarada como de qualquer outro tipo

    Tutoriais de VBA

    User defined type: tipo de dado criado pelo usurio

  • Declarao de VarivelDeclarao de Varivel

    As variveis so declaradas antes de serem usadas, geralmente no incio do programaOs exemplos abaixo mostram os tipos de dados usados maiscomunsAdicionando Option Explicit fora a declarao da varivelAdicionando Option Explicit fora a declarao da varivel(recomendado)

    Exemplos:Option ExplicitDim Result as LongDi T t l D blDim Totalsum as DoubleDim Description as StringDim Startdate as Date

    Tutoriais de VBA

    Dim Startdate as Date

  • Variveis EspeciaisVariveis EspeciaisC t d A l d i i i iContadores e Acumuladores: variveis especiais que

    armazenam certos valores quando se executa um LAOContadores: armazena um, usado para contagem

    Exemplo:Dim Iteration as Long

    Iteration = Iteration + 1

    Acumuladores: armazena qualquer valor, usado parasomatrios

    E lExemplo:Dim Somatotal as Double

    Tutoriais de VBA

    Somatotal = Somatotal + Saldo

  • Estruturas Padres de ProgramaoEstruturas Padres de Programao

    If End IfBifurcao

    Select Case End SelectBifurcao

    For NextCirculao

    Do While - LoopCirculao

    Exit Declaraes Especiais

    Tutoriais de VBAWith End With

  • If End If (I)If End If (I)

    Esta a maneira mais comum para manipular bifurcao l f () d E l anloga funo se() do Excel

    Sintaxe:

    If then[Instrues se a Condio if for Verdadeira][Instrues se a Condio if for Verdadeira]

    Else[Instrues se a Condio if for Falsa]

    End If

    Tutoriais de VBA

  • If End If (II)If End If (II)

    Exemplo:

    Sub Multiplicao1()Dim Mult as DoubleMult = Range(a1).Value*Range(b1).ValueIf Mult > 20 Then

    MsgBox Maior que 20"MsgBox Maior que 20"Else

    MsgBox Menor que ou igual a 20"End If

    End Sub

    Tutoriais de VBA

  • Select Case End Select (I)Select Case End Select (I)

    Esta estrutura anloga estrutura If End IfEla foi projetada para evitar os If End If aninhados

    Sintaxe:

    Select Case Select Case Case < Condio 1>

    [Instrues se a Condio 1 if for Verdadeira]...Case < Condition n>

    [Instrues se a Condio n if for Verdadeira]Case Else

    [Instrues se as n Condies Anteriores forem Falsas]End Select

    Tutoriais de VBA

  • Select Case End Select (II)Select Case End Select (II)E lExemplo

    Sub Multiplicacao2()Dim Mult as DoubleMult = Range(a1).Value*Range(b1).ValueSelect Case Mult

    Case Is < 10MsgBox Menor que 10"

    Case Is < 15Case s 5MsgBox Maior que ou igual a 10 e menor que 15"

    Case Is < 20MsgBox Maior que ou igual a 15 e menor que 20"MsgBox Maior que ou igual a 15 e menor que 20

    Case ElseMsgBox Maior que ou igual a 20"

    End Select

    Tutoriais de VBA

    End SelectEnd Sub

  • For Next (I)For Next (I)

    Este o lao mais simples e mais amplamente usadoEspecificamos quantas vezes o lao ser repetido

    Sintaxe:

    For To [Instrues][Instrues]

    Next

    Tutoriais de VBA

  • For Next (II)For Next (II)

    Exemplo:

    Sub CalcularTotal1()Dim Contador As IntegerDim Total As DoubleDim Total As DoubleTotal=0For Contador = 2 To 15

    If Range(a" & Contador) Value = "Centro" ThenIf Range( a & Contador).Value = Centro ThenTotal = Total + Range(b" & Contador).Value

    End IfNextNextRange(d2").Value = Total

    End Sub

    Tutoriais de VBA

  • Do While Loop (I)Do While Loop (I)

    Este outro lao comumente usadoEspecificamos que o lao ser repetido enquanto uma certa condiof d d ifor verdadeira

    Sintaxe:

    Do While [Instrues Enquanto a Condio for Verdadeira][Instrues Enquanto a Condio for Verdadeira]

    Loop

    Tutoriais de VBA

  • Do While Loop (II)Do While Loop (II)

    Exemplo:

    Sub Calcularotal2()Dim Contador As IntegerDim Total As DoubleContador = 2Total = 0Total 0Do While Range(a" & Contador).Value Sul"

    Total = Total + Range(b" & Contador).ValueC t d C t d 1Contador = Contador + 1

    LoopRange(d2").Value = Total

    Tutoriais de VBA

    End Sub

  • Exit (I)Exit (I)

    Esta declarao usada para encerrar o bloco:For Next Exit ForDo While Loop Exit DoFunction End Function Exit FunctionSub End Sub Exit SubSub End Sub Exit Sub

    Sintaxe: (dentro de um bloco For Next)

    For To [Instrues]If then

    [Sair se a condio for verdadeira]End If

    Tutoriais de VBA

    End IfNext

  • Exit (II)Exit (II)E lExemplo:

    Sub CalcularTotal3()Dim Contador As IntegerDim Contador As IntegerDim Total As DoubleTotal=0For Contador = 2 To 15For Contador = 2 To 15

    If Range(b" & Contador).Value < 0 ThenMsgbox H um erro no nmero registrado & Contador - 1Total=0Total