Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'força todas as variáveis a ser declaradas antes do uso
- Option Explicit
- 'Dim com As Single 'tudo declarado aqui é usado de forma global
- 'definindo uma variável constante, ela só pode ser modificada aqui
- 'Public bonu As Currency 'define ela como moeda e torna utilizável em qualquer módulo
- Const bonu As Currency = 10 'pode se declarar ela e atribuir na mesma linha, a sintaxe dela é dif das demais variáveis
- Const cbonu As Currency = 10 'outra sintaxe pra definir constantes, mais claramente
- Public Const nomestr As String = "foda, amigos" 'para poder ser acessada em outro módulo, inclusive
- Public a As Integer
- Public mynumb As Long
- Private Sub ola_mundo()
- Dim a As Integer
- Dim b As Integer
- MsgBox ("olá_amigos" & vbNewLine & "Tenham um ótimo dia") 'o vbNewline permite quebrar a linha, pode ser usado tbm com vars
- a = 10
- b = 15
- mynumb = 101010
- Debug.Print mynumb
- MsgBox ("olá_amigos" & vbNewLine & "Tenham um ótimo dia " & a) 'observar o espaço antes do último "
- Debug.Print a ^ b 'cuidado ao escrever, a^ vai dar erro
- Debug.Print b Mod a 'retorna o resto da div de b por a
- 'Atribuir número limite de caracteres para uma string
- Dim nome1 As String
- Dim nome2 As String * 10 'só vai poder ter 10 caracteres, ao aplicar o asterisco
- nome1 = "Felipe do Vale"
- nome2 = "Felipe do Vale"
- Debug.Print nome1
- Debug.Print nome2
- End Sub
- 'Operadores arit
- Sub operarit()
- Dim val_tot As Currency
- val_tot = Range("G3").Value + 100 'adição
- MsgBox (val_tot)
- val_tot = Range("G3").Value - 100 'subtração
- MsgBox (val_tot)
- val_tot = Range("g3").Value * 2 ' multiplicação
- MsgBox (val_tot)
- val_tot = Range("g3").Value / 2 'divisão
- MsgBox (val_tot)
- val_tot = Range("g3").Value ^ 2 'potência
- MsgBox (val_tot)
- End Sub
- Sub nome_completo() 'comentário
- MsgBox ("f")
- mynumb = 1010
- Debug.Print mynumb
- Dim pi As Double
- pi = 3.1415
- Dim r As Integer
- r = 5
- Dim circ As Double
- circ = 2 * pi * r
- Debug.Print "The circ is: "; circ
- End Sub
- 'sub para calcular a comissão dos vendedores
- Sub comissao_vendedores()
- Dim valortotal As Currency, calc_com As Currency 'definindo mais de uma variável ao mesmo tempo
- Dim com As Single
- 'func range busca a variável e com o .value retorna o valor
- com = 0.05
- valortotal = Range("G3").Value
- calc_com = valortotal * com + bonu
- MsgBox (calc_com)
- End Sub
- 'criando função
- Function calc_c(val_tot) 'no caso em questão o próprio ""usuário irá declarar"" e atribuir o valor
- Dim com As Single 'em função tem que definir o tipo de variável e dps atribuir valor
- com = 0.5 'a variável só vale dentro de um procedimento, o tipo pode ser colocado de forma global, o valor nao
- calc_c = (val_tot * com) + bonu
- MsgBox (calc_c)
- End Function
- 'variável estática, que permanece mesmo quando não executada
- Function bonuVend()
- Static bonuQuan As Integer
- bonuQuan = bonuQuan + 1
- MsgBox (bonuQuan)
- End Function
- 'Matriz forma de pagamento
- Sub formPaga()
- Dim formpagatipo As Variant
- formpagatipo = Array("Cartão de cred", "Boleto banc")
- 'Consultando valor pra msgbox
- MsgBox (formpagatipo(1))
- 'Definindo como string, mas aparentemente não é obrigatório definir em sub
- Dim formpagainfo As String
- formpagainfo = formpagatipo(0)
- MsgBox (formpagainfo)
- 'Adicionar novos valores à matriz,com a função ReDim
- 'ReDim [Preserve] Opcional. Modificador usado para preservar os dados na matriz existente quando você altera o tamanho da última dimensão.
- ReDim Preserve formpagatipo(3) ' o 3 representa 3 espaços e o preserve serve para preservar os dados da matriz, ao expandi-la
- MsgBox (formpagatipo(0))
- formpagatipo(2) = "À vista" ' o 3º espaço,adicionado acima,corresponde ao índice 2
- MsgBox (formpagatipo(2))
- End Sub
- 'Objeto range fazendo referência pelo nome e preenchendo valor de célula
- Sub range01()
- Range("A13").Value = Range("A12").Value + 1 'vai buscar o valor na cel A13, retornar e dps atribuir
- Range("B13").Value = "04/16/2020" ' m/dia/ano data no formato americano, ele irá transformar pro brasileiro
- End Sub
- 'Referência de forma abreviada, retornar o valor sem a range, só com [#]
- Sub range02()
- [c13].Value = "Felipe "
- [d13].Value = "Eu memo "
- End Sub
- 'Referência pelo número
- Sub range03()
- Cells(13, 5).Value = "Vendedor" 'função cells buscou o valor da célula pelo nº da linha e coluna
- Cells(13, 6).Value = "Cartão de crédito"
- End Sub
- 'Ref pela célula ativa - ActiveCell
- Sub range04()
- [G13].Select 'o Select põe a seleção em cima da célula requisitada, porém só SELECIONA
- ActiveCell.Value = 1923
- End Sub
- 'Propriedade fonte - prop da própria planilha
- Sub prop1()
- Range("A13:H13").Font.Bold = True
- Range("A13:H13").Font.ColorIndex = 0 'ele vai acessar esse intervalo, na prop da planilha "fonte" e botar a cor com base num índice já estabelecido pela própria escala do EXCEL
- Range("A13:H13").Font.Underline = True
- Range("A13:H13").Font.Name = "Times"
- Range("A13:H13").Font.Size = 12
- Columns.AutoFit 'interessante notar que ajusta o tamanho das colunas automaticamente tanto quando for necessário aumentar elas, ou diminuir
- End Sub
- 'Utilizando o with e end with para reciclar o Range().font bla bla
- Sub prop2()
- With Range("a13:H13").Font
- .Bold = True
- .ColorIndex = xlAutomatic 'deixa a cor automática
- .Underline = False
- .Name = "calibri"
- .Size = 12
- Columns.AutoFit
- End With
- End Sub
- 'Utilizando number formact
- Sub prop3()
- Range("g13:h13").NumberFormat = "$ #,##0.00" 'esse é o jeito de formatar números para moedas
- End Sub
- 'Propriedade interior - cor de preenchimento
- Sub prop4()
- Range("A13:H13").Interior.ColorIndex = 0 'pra mudar a cor de preenchimento
- End Sub
- 'Prop interior - cor de preenchimento com o RGB
- Sub prop5()
- Range("A13:h13").Interior.Color = RGB(0, 153, 153)
- End Sub
- 'Detectando a última linha da planilha
- 'equivalente a ctrl + seta pra cima na planilha
- Sub prop6() 'toda vez que colocar o underline, a fórmula poderá ser continuada na outra linha
- MsgBox ("The last line of this table is:" & _
- Range("A2").End(xlDown).Row) 'o underline não pode ficar colado com o outro caracter, mesmo que seja & e nem comentário na frente, já que serve pra quebrar linha
- 'range seleciona a linha a2, end vai ao fim dessa planilha e row serve pra retornar o valor dessa linha
- End Sub
- 'Selecionar a última linha da planilha
- Sub prop7()
- Range("a2").End(xlDown).Select
- End Sub
- 'Offset permite deslocar quantas células quiser pra qualquer direção
- 'desloca n linhas e n colunas
- Sub prop8()
- Range("a13").Offset(1, 0).Value = 2014
- Range("b13").Offset(1, 0).Value = "04/16/2020"
- End Sub
- 'Sub prop9()
- 'Range("a2").End(xlDown).Offset(1, 0).Value = Range("a2").End(xlDown).Value + 1 'o value serve para retornar/acessar determinado valor da célula
- 'End Sub
- Sub prop9()
- Range("a2").End(xlDown).Offset(1, 0) = InputBox("Digite o número da reserva")
- Range("b2").End(xlDown).Offset(1, 0) = InputBox("Digite a data da reserva")
- End Sub
- 'Utilizando o método select
- Sub met1()
- Range("A14").Select 'dps pode usar a activecell pra pegar ela e manipular
- End Sub
- 'Utilizando o método clear para limpar um intervalo
- Sub met2()
- Range("A14:G14").Clear
- End Sub
- Sub qlqr()
- Debug.Print Range("A23").Value 'Usando o debug print para printar um debug na immediate window
- Range("A23").Value = "num é"
- Debug.Print Range("A23")
- End Sub
- Sub annoyuser()
- MsgBox ("You made a macro and ran it") 'macro pro botão
- End Sub
- Sub escrevernafrente()
- 'outra linha na frente com o
- Debug.Print ("hello amigos"): Debug.Print ("hello amigos 2"): Debug.Print ("hello amigos 3"): 'DEU ERRO USANDO ; PERGUNTAR AO PROFESSOR
- End Sub
- Sub definir_datas()
- Dim mybirthday As Date
- mybirthday = #10/14/1997#
- Range("a44").Value = mybirthday
- mybirthday = #10/10/1997# 'digite 10 Outubro 1997 e ele vai formatar igual o de cima, qdo der enter
- Dim hour As Date
- hour = #1:30:00 PM# 'digitei 13:30:00 pm
- Range("a45").Value = hour
- Dim someevent As Date
- someevent = #10/14/1997 1:30:00 PM#
- Range("a46").Value = someevent
- End Sub
- Sub atribuirobjeto()
- Dim wb As Workbook
- Dim ws As Worksheet
- Dim box As Range 'variável box - para representar o range e localizar ou definir um intervalo de células
- Set wb = Workbooks(1) 'precisa do set quando for atribuir a objeto
- Set ws = Workbooks(1).Worksheets(1)
- 'ou
- Set ws = wb.Worksheets(1) 'pode usar o wb para se refenciar ao objeto workbooks
- 'de forma similar, ws engloba o wsheet e o workboooks
- Set box = ws.Range("C40")
- ws.Name = "anotacoes_vba"
- box.Value = 14
- Debug.Print TypeName(box)
- End Sub
- Sub reciclarsubs()
- Call atribuirobjeto 'a função call serve para reciclar uma sub dentro de outra sub
- Call prop3
- End Sub
- 'atribuir um argumento para um procedimento
- Private Sub alimentadora(Value As Long) 'value é só uma variável QUALQUER, não é o objeto value
- Debug.Print Value
- End Sub
- Sub saida_alim(Value As Long) 'value é só uma variável QUALQUER, não é o objeto value
- MsgBox (Value)
- End Sub
- Private Sub privado() 'lembrar do escopo privado, não aparece no menu de macros e nem pode ser utilizado em outros módulos, só nesse
- Debug.Print 1566
- End Sub
- Sub reciclarsub_sem_a_call() 'todas são públicas por default
- Dim calc As Long
- calc = 5 * 2
- alimentadora (calc) 'aparentemente funciona bem sem a call, só dentro do mesmo módulo
- saida_alim (calc) 'funciona quase como aproveitar uma função def() no python
- Call privado
- End Sub
- Sub terminar_antesdo_endsub()
- Debug.Print 34
- Exit Sub 'pra terminar essa sub antes do end sub
- Debug.Print 405
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement