Upload
angelolopes11
View
16
Download
0
Tags:
Embed Size (px)
DESCRIPTION
vba excel
Citation preview
Visual Basic for Applications: # 1
Visual Basic for Applications
Introduo uma linguagem de programao baseada na conhecida linguagem BASICEst concebida para funcionar em conjunto com diferentes aplicaes, de forma a potenciar a robustez das mesmasEnquadra-se nos ambientes de programao baseados no processamento de sequncia de eventos (event-driven programming)
HistriaFoi inicialmente integrada com o Excel 5 em 1994 e a partir da a sua expanso para outras aplicaes foi gradualFoi com a sada do Office 97 em 1997 que a Microsoft concretizou um dos seus grandes objectivos: ter um ambiente de programao completamente integrado entre os seus quatro famosos produtos: Word, Excel, Access e PowerPointActualmente, o VBA j por si s um produto independente, que outras companhias podem adoptar e incorporar nas suas aplicaes
Visual Basic for Applications: # 2
Variveis IDeclarao explcita de variveis
Declarar uma varivel VAR: Dim VARDeclarar uma varivel VAR como sendo do tipo TYPE: Dim VAR As TYPE
Declarao implcita de variveisPossibilidade de no declarar variveisVariveis no declaradas ou sem declarao de tipo tm por defeito o tipo VariantNo permitir o uso de variveis implcitas: Option Explicit
Visibilidade e longevidade de uma varivelPublic: visvel em todos os mdulos e durante toda a execuoPrivate ou Dim: visvel dentro do seu mdulo e durante toda a execuoDim: visvel dentro do seu procedimento e durante a sua execuoStatic: visvel dentro do seu procedimento e durante toda a execuo
ConstantesSystem-defined constants: True; False; Null; Empty; NothingIntrinsic constants (bibliotecas do VBA): Const LEFT_BUTTON = 1Symbolic constants: Const PI = 3,14
Visual Basic for Applications: # 3
Variveis IITipo de variveis
Variant tipo genricoByte 0 at 255Boolean True ou FalseInteger -32.768 at 32.767Long -2.147.483.648 at 2.147.483.647Single -3,402823E38 at -1,401298E-45 (para valores negativos)
1,401298E-45 at 3,402823E38 (para valores positivos)Double -1,79769313486232E308 at -4,94065645841247E-324 (negativos)
4,94065645841247E-324 at 1,79769313486232E308 (positivos)Currency -922.337.203.685.477,5808 at 922.337.203.685.477,5807Decimal +/-79.228.162.514.264.337.593.543.950.335 (sem casas decimais)
+/-7,9228162514264337593543950335 (com casas decimais)Date 1 de Janeiro de 100 at 31 de Dezembro de 9999String 1 at aproximadamente 2 bilies de caracteres (65.400 se tamanho fixo)Type definido pelo utilizadorObject referncia a objectos
Visual Basic for Applications: # 4
Operadores I
Aritmticos+ (adio) - (subtraco e negao) * (multiplicao)/ (diviso) \ (diviso inteira) ^ (exponenciao)Mod (resto da diviso)
Relacionais= (igual a) > (maior que) < (menor que) (diferente de) >= (maior ou igual)
Visual Basic for Applications: # 5
Operadores IIPrecedncias
Operador Operao
^ exponenciao- negao* , / multiplicao e diviso\ diviso inteiraMod resto da diviso+ , - adio e subtraco& concatenao= , > , < , , >= ,
Visual Basic for Applications: # 6
ProcedimentosProcedimentos Sub
[Public | Private] [Static] Sub nome ( [argumentos] ) [...][Exit Sub][...]
End Sub
Procedimentos Function[Public | Private] [Static] Function nome ( [argumentos] ) [As tipo]
[...][nome = expresso][Exit Function] [...][nome = expresso]
End Function
Visual Basic for Applications: # 7
ArgumentosDeclarar argumentos
[Optional] [ByRef | ByVal] [ParamArray] argumento[( )] [As tipo] [=valor_por_defeito]
Passar e nomear argumentosExemplo: Function area (comp As Integer, alt As Integer) As IntegerPassar argumentos: var = area(5, 4)Nomear argumentos: var = area (alt:= 4, comp:= 5)
Opes de declaraoByRef: declara que o argumento passado por referncia (o procedimento recebe o prprio endereo da varivel passada como argumento)ByVal: declara que o argumento passado por valor (o procedimento apenas recebe o valor da varivel passada como argumento)Optional: declara que o argumento no obrigatrio (esta declarao implica que os restantes argumentos sejam igualmente declarados como Optional)ParamArray: declara um nmero arbitrrio de argumentos no obrigatrios (esta declarao s pode ser utilizada como ltimo argumento na lista de argumentos)
Visual Basic for Applications: # 8
ArraysDeclarar arrays
Dim nome (limite_superior) As tipoDim nome (limite_inferior To limite_superior) As tipoOption Base 1
Preencher arraysAtribuio directa por elementoFuno Array
Arrays com mais do que uma dimensoDim nome (limite_superior_1, ... , limite_superior_n) As tipo
Arrays dinmicosReDim: redefine os limites de um dado arrayRedim Preserve: redefine os limites de um dado array e preserva os valores nele existentes ( aplicvel apenas quando se redefine a ltima dimenso do array)LBound: devolve o limite inferior de um dado arrayUBound: devolve o limite superior de um dado array
Visual Basic for Applications: # 9
Estruturas de DecisoExecuo condicionalIf condio_1 Then
[...]...[ElseIf condio_n Then
[...]][Else
[...]]End If
Mltiplos testesSelect Case expresso_a_testar
Case lista_de_expresses_1[...]
...[Case lista_de_expresses_n
[...]][Case Else
[...]]End Select
MacrosIIf (condio, valor_se_verdade, valor_se_falso)Switch (condio_1, valor_1, , condio_n, valor_n)Choose (ndice, valor_1, , valor_n)
Visual Basic for Applications: # 10
Cdigo em CicloCiclos condicionais
Do {While | Until} condio[...][Exit Do][...]
Loop
Do[...][Exit Do][...]
Loop {While | Until} condio
Ciclos numerveisFor contador = incio To fim [Step incremento]
[...][Exit For][...]
Next [contador]
For Each elemento In coleco[...][Exit For][...]
Next [elemento]
Visual Basic for Applications: # 11
Funes Bsicas IConverso de dados
CBool (expresso) CByte (expresso)CCur (expresso) CDate (expresso)CDbl (expresso) CInt (expresso)CLng (expresso) CSng (expresso)CVar (expresso) CStr (expresso)
Testes sobre os dadosIsArray (varivel) IsDate (expresso)IsEmpty (varivel) IsNumeric (expresso)IsNull (varivel) IsMissing (argumento)TypeName (varivel) VarType (varivel)
Caixas de mensagemMsgBox (mensagem [, ]) InputBox (mensagem [, ])
Visual Basic for Applications: # 12
Funes Bsicas IIManipulao de strings
Asc (string) Chr (cdigo)LCase (string) Len (string | varivel)Mid (string, incio [, comprimento]) Left (string, comprimento)Trim (string) LTrim (string)Str (nmero) Val (string)InStr ([incio,] string_geral, string_procura) StrComp (string1, string2 [, mtodo])
Manipulao de datas e horasDate Year (data)Time Month (data)Now Day (data)DateSerial (ano, ms, dia) Hour (hora)TimeSerial (hora, minuto, segundo) Minute (hora)Weekday (data) Second (hora)
Visual Basic for Applications: # 13
VBA e Excel IMacros
Menu seguido da opo Gravar macros: botes e
Executar e editar macros
Visual Basic for Applications: # 14
VBA e Excel IIFormulrios
Menu seguido das opes e Ligar clulas aos controlos: menu seguido daopo e doseparador Atribuir macros aos controlos:Menu especfico sobre o controlo seguido da opo
Visual Basic for Applications: # 15
VBA e Excel IIIEditor do Visual Basic
ProjectoPropriedadesCdigo
Visual Basic for Applications: # 16
Cdigo VBA e Funes do ExcelCdigo VBA como funo do Excel
Funes do Excel como cdigo VBA
Visual Basic for Applications: # 17
Objectos IConceito
Qualquer coisa que numa aplicao se pode ver e manipular de algum modo
Formas de manipular um objectoAlterar o seu conjunto de propriedadesActivar mtodos especficos do objecto para executar determinadas tarefasAssociar procedimentos aos eventos que podem ocorrer sobre o objecto
PropriedadesAs propriedades so os atributos que definem as caractersticas dos objectos
ActiveCell.Formula = "=A1*10"Certas propriedades so elas mesmas objectos
ActiveCell.Font.Italic = TrueExistem propriedades que so s de leitura
col = ActiveCell.Column
Visual Basic for Applications: # 18
Objectos IIMtodos
Os mtodos so aces que descrevem o que os objectos podem fazerSo executados sobre os objectos e podem conter ou no argumentos
ActiveCell.ClearActiveCell.AddComment "comentrio"
EventosOs eventos so algo que acontece aos objectosOcorrem como resultado de aces do utilizador, do sistema ou do prprio cdigo
Private Sub Worksheet_Activate()
Classes e instnciasClasse de objectos: conjunto de objectos com as mesmas propriedades, com os mesmos mtodos e que respondem aos mesmos eventosInstncia: todo o objecto particular de uma classe
Visual Basic for Applications: # 19
Objectos IIIHierarquia de objectos
Application: objecto de topo da hierarquia de objectosCaminhos hierrquicos
Application.Workbooks(Livro1).Worksheets(Folha1)Caminhos nicos podem ser abreviados
Worksheets(Folha1)ActiveCell
Collection: tipo de objecto que resulta da coleco de outros objectos Variveis como objectos
Tipo de dados ObjectA instruo SetA constante NothingO operador IsA varivel Me
Mltiplas aces sobre um objectoWith objecto[...]End With
Visual Basic for Applications: # 20
Objectos WorkbookReferenciao
[Application.]Workbooks(Livro1) [Application.]Workbooks(1)[Application.]ActiveWorkbook [Application.]ThisWorkbook
Workbooks Collection[Application.]Workbooks.Add [Application.]Workbooks.Open(FileName)[Application.]Workbooks.Close [Application.]Workbooks.Count
Propriedadesworkbook.Name workbook.Pathworkbook.FullName workbook.Saved
Mtodosworkbook.Activate workbook.Saveworkbook.Close(SaveChanges, FileName) workbook.SaveAs(FileName) workbook.Protect(Password, Structure, Windows) workbook.Unprotect(Password)
EventosPrivate Sub Workbook_Activate()Private Sub Workbook_Open()Private Sub Workbook_Newsheet(ByVal Sh As Object)
Visual Basic for Applications: # 21
Objectos WorksheetReferenciao
Sheets = Worksheets + Charts[ActiveWorkbook.]Worksheets(Folha1) [ActiveWorkbook.]Worksheets(1)[ActiveWorkbook.]ActiveSheet
Worksheets Collection[ActiveWorkbook.]Worksheets.Add(Before, After, Count)[ActiveWorkbook.]Worksheets.Count
Propriedadesworksheet.Name worksheet.Visible
Mtodosworksheet.Activate worksheet.Copy(Before, After)worksheet.Delete worksheet.Move(Before, After)worksheet.Protect(Passwd, DrawingObjs, Contents) worksheet.Calculate
EventosPrivate Sub Worksheet_Calculate()Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Visual Basic for Applications: # 22
Objectos RangeReferenciao
[ActiveSheet.]Range(B2:C3) [ActiveSheet.]Range(A1, B2:C3)[ActiveSheet.]Range(Lucro) [ActiveSheet.]Range(B2, C3)[ActiveSheet.]Cells(1, 2) [ActiveSheet.]Range(B2:C3).Cells(1, 2)
Propriedadesrange.Row range.Columnrange.Rows(Index) range.Columns(Index)range.Offset(RowOffset, ColumnOffset) range.Valuerange.Formula range.FormulaLocalrange.FormulaR1C1 range.FormulaR1C1Localrange.Address(RowAbsolute, ColumnAbsolute) range.Count
Mtodosrange.Select range.Calculaterange.Copy(Destination) range.Cut(Destination)range.Clear range.ClearCommentsrange.ClearContents range.ClearFormatsrange.FillDown range.FillUprange.FillLeft range.FillRight