Advertisement
Guest User

Full code vba

a guest
Apr 21st, 2020
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.07 KB | None | 0 0
  1. 'força todas as variáveis a ser declaradas antes do uso
  2. Option Explicit
  3. 'Dim com As Single 'tudo declarado aqui é usado de forma global
  4. 'definindo uma variável constante, ela só pode ser modificada aqui
  5. 'Public bonu As Currency 'define ela como moeda e torna utilizável em qualquer módulo
  6. Const bonu As Currency = 10 'pode se declarar ela e atribuir na mesma linha, a sintaxe dela é dif das demais variáveis
  7. Const cbonu As Currency = 10 'outra sintaxe pra definir constantes, mais claramente
  8. Public Const nomestr As String = "foda, amigos" 'para poder ser acessada em outro módulo, inclusive
  9. Public a As Integer
  10. Public mynumb As Long
  11.  
  12.  
  13.  
  14. Private Sub ola_mundo()
  15. Dim a As Integer
  16. Dim b As Integer
  17. MsgBox ("olá_amigos" & vbNewLine & "Tenham um ótimo dia") 'o vbNewline permite quebrar a linha, pode ser usado tbm com vars
  18. a = 10
  19. b = 15
  20. mynumb = 101010
  21. Debug.Print mynumb
  22. MsgBox ("olá_amigos" & vbNewLine & "Tenham um ótimo dia " & a) 'observar o espaço antes do último "
  23. Debug.Print a ^ b 'cuidado ao escrever, a^ vai dar erro
  24. Debug.Print b Mod a 'retorna o resto da div de b por a
  25.  
  26. 'Atribuir número limite de caracteres para uma string
  27. Dim nome1 As String
  28. Dim nome2 As String * 10 'só vai poder ter 10 caracteres, ao aplicar o asterisco
  29. nome1 = "Felipe do Vale"
  30. nome2 = "Felipe do Vale"
  31. Debug.Print nome1
  32. Debug.Print nome2
  33.  
  34. End Sub
  35.  
  36. 'Operadores arit
  37. Sub operarit()
  38. Dim val_tot As Currency
  39. val_tot = Range("G3").Value + 100 'adição
  40. MsgBox (val_tot)
  41. val_tot = Range("G3").Value - 100 'subtração
  42. MsgBox (val_tot)
  43. val_tot = Range("g3").Value * 2 ' multiplicação
  44. MsgBox (val_tot)
  45. val_tot = Range("g3").Value / 2 'divisão
  46. MsgBox (val_tot)
  47. val_tot = Range("g3").Value ^ 2 'potência
  48. MsgBox (val_tot)
  49. End Sub
  50.  
  51.  
  52. Sub nome_completo() 'comentário
  53. MsgBox ("f")
  54. mynumb = 1010
  55. Debug.Print mynumb
  56. Dim pi As Double
  57. pi = 3.1415
  58. Dim r As Integer
  59. r = 5
  60. Dim circ As Double
  61. circ = 2 * pi * r
  62. Debug.Print "The circ is: "; circ
  63. End Sub
  64.  
  65. 'sub para calcular a comissão dos vendedores
  66.  
  67. Sub comissao_vendedores()
  68. Dim valortotal As Currency, calc_com As Currency 'definindo mais de uma variável ao mesmo tempo
  69. Dim com As Single
  70. 'func range busca a variável e com o .value retorna o valor
  71. com = 0.05
  72. valortotal = Range("G3").Value
  73. calc_com = valortotal * com + bonu
  74. MsgBox (calc_com)
  75. End Sub
  76.  
  77. 'criando função
  78.  
  79. Function calc_c(val_tot) 'no caso em questão o próprio ""usuário irá declarar"" e atribuir o valor
  80. Dim com As Single 'em função tem que definir o tipo de variável e dps atribuir valor
  81. com = 0.5 'a variável só vale dentro de um procedimento, o tipo pode ser colocado de forma global, o valor nao
  82. calc_c = (val_tot * com) + bonu
  83. MsgBox (calc_c)
  84. End Function
  85.  
  86. 'variável estática, que permanece mesmo quando não executada
  87. Function bonuVend()
  88. Static bonuQuan As Integer
  89. bonuQuan = bonuQuan + 1
  90. MsgBox (bonuQuan)
  91. End Function
  92.  
  93.  
  94.  
  95. 'Matriz forma de pagamento
  96.  
  97. Sub formPaga()
  98. Dim formpagatipo As Variant
  99. formpagatipo = Array("Cartão de cred", "Boleto banc")
  100. 'Consultando valor pra msgbox
  101. MsgBox (formpagatipo(1))
  102. 'Definindo como string, mas aparentemente não é obrigatório definir em sub
  103. Dim formpagainfo As String
  104. formpagainfo = formpagatipo(0)
  105. MsgBox (formpagainfo)
  106.  
  107. 'Adicionar novos valores à matriz,com a função ReDim
  108. 'ReDim [Preserve] Opcional. Modificador usado para preservar os dados na matriz existente quando você altera o tamanho da última dimensão.
  109. ReDim Preserve formpagatipo(3) ' o 3 representa 3 espaços e o preserve serve para preservar os dados da matriz, ao expandi-la
  110. MsgBox (formpagatipo(0))
  111. formpagatipo(2) = "À vista" ' o 3º espaço,adicionado acima,corresponde ao índice 2
  112. MsgBox (formpagatipo(2))
  113. End Sub
  114.  
  115.  
  116. 'Objeto range fazendo referência pelo nome e preenchendo valor de célula
  117.  
  118. Sub range01()
  119. Range("A13").Value = Range("A12").Value + 1 'vai buscar o valor na cel A13, retornar e dps atribuir
  120. Range("B13").Value = "04/16/2020" ' m/dia/ano data no formato americano, ele irá transformar pro brasileiro
  121. End Sub
  122.  
  123. 'Referência de forma abreviada, retornar o valor sem a range, só com [#]
  124.  
  125. Sub range02()
  126. [c13].Value = "Felipe "
  127. [d13].Value = "Eu memo "
  128.  
  129. End Sub
  130.  
  131.  
  132. 'Referência pelo número
  133. Sub range03()
  134. Cells(13, 5).Value = "Vendedor" 'função cells buscou o valor da célula pelo nº da linha e coluna
  135. Cells(13, 6).Value = "Cartão de crédito"
  136. End Sub
  137.  
  138. 'Ref pela célula ativa - ActiveCell
  139. Sub range04()
  140. [G13].Select 'o Select põe a seleção em cima da célula requisitada, porém só SELECIONA
  141. ActiveCell.Value = 1923
  142. End Sub
  143.  
  144. 'Propriedade fonte - prop da própria planilha
  145. Sub prop1()
  146. Range("A13:H13").Font.Bold = True
  147. 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
  148. Range("A13:H13").Font.Underline = True
  149. Range("A13:H13").Font.Name = "Times"
  150. Range("A13:H13").Font.Size = 12
  151. Columns.AutoFit 'interessante notar que ajusta o tamanho das colunas automaticamente tanto quando for necessário aumentar elas, ou diminuir
  152. End Sub
  153.  
  154. 'Utilizando o with e end with para reciclar o Range().font bla bla
  155. Sub prop2()
  156. With Range("a13:H13").Font
  157. .Bold = True
  158. .ColorIndex = xlAutomatic 'deixa a cor automática
  159. .Underline = False
  160. .Name = "calibri"
  161. .Size = 12
  162. Columns.AutoFit
  163. End With
  164.  
  165. End Sub
  166.  
  167. 'Utilizando number formact
  168. Sub prop3()
  169. Range("g13:h13").NumberFormat = "$ #,##0.00" 'esse é o jeito de formatar números para moedas
  170. End Sub
  171.  
  172. 'Propriedade interior - cor de preenchimento
  173.  
  174. Sub prop4()
  175. Range("A13:H13").Interior.ColorIndex = 0 'pra mudar a cor de preenchimento
  176. End Sub
  177.  
  178. 'Prop interior - cor de preenchimento com o RGB
  179. Sub prop5()
  180. Range("A13:h13").Interior.Color = RGB(0, 153, 153)
  181. End Sub
  182.  
  183. 'Detectando a última linha da planilha
  184. 'equivalente a ctrl + seta pra cima na planilha
  185. Sub prop6() 'toda vez que colocar o underline, a fórmula poderá ser continuada na outra linha
  186. MsgBox ("The last line of this table is:" & _
  187. 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
  188. 'range seleciona a linha a2, end vai ao fim dessa planilha e row serve pra retornar o valor dessa linha
  189. End Sub
  190.  
  191. 'Selecionar a última linha da planilha
  192.  
  193. Sub prop7()
  194. Range("a2").End(xlDown).Select
  195. End Sub
  196.  
  197. 'Offset permite deslocar quantas células quiser pra qualquer direção
  198. 'desloca n linhas e n colunas
  199. Sub prop8()
  200. Range("a13").Offset(1, 0).Value = 2014
  201. Range("b13").Offset(1, 0).Value = "04/16/2020"
  202. End Sub
  203.  
  204. 'Sub prop9()
  205. '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
  206.  
  207. 'End Sub
  208.  
  209. Sub prop9()
  210. Range("a2").End(xlDown).Offset(1, 0) = InputBox("Digite o número da reserva")
  211. Range("b2").End(xlDown).Offset(1, 0) = InputBox("Digite a data da reserva")
  212. End Sub
  213.  
  214. 'Utilizando o método select
  215.  
  216. Sub met1()
  217. Range("A14").Select 'dps pode usar a activecell pra pegar ela e manipular
  218.  
  219. End Sub
  220.  
  221. 'Utilizando o método clear para limpar um intervalo
  222. Sub met2()
  223. Range("A14:G14").Clear
  224.  
  225. End Sub
  226.  
  227.  
  228. Sub qlqr()
  229. Debug.Print Range("A23").Value 'Usando o debug print para printar um debug na immediate window
  230. Range("A23").Value = "num é"
  231. Debug.Print Range("A23")
  232.  
  233. End Sub
  234.  
  235.  
  236. Sub annoyuser()
  237. MsgBox ("You made a macro and ran it") 'macro pro botão
  238. End Sub
  239.  
  240. Sub escrevernafrente()
  241. 'outra linha na frente com o
  242. Debug.Print ("hello amigos"): Debug.Print ("hello amigos 2"): Debug.Print ("hello amigos 3"): 'DEU ERRO USANDO ; PERGUNTAR AO PROFESSOR
  243.  
  244.  
  245.  
  246. End Sub
  247.  
  248.  
  249. Sub definir_datas()
  250. Dim mybirthday As Date
  251. mybirthday = #10/14/1997#
  252. Range("a44").Value = mybirthday
  253. mybirthday = #10/10/1997# 'digite 10 Outubro 1997 e ele vai formatar igual o de cima, qdo der enter
  254.  
  255. Dim hour As Date
  256. hour = #1:30:00 PM# 'digitei 13:30:00 pm
  257. Range("a45").Value = hour
  258.  
  259. Dim someevent As Date
  260. someevent = #10/14/1997 1:30:00 PM#
  261. Range("a46").Value = someevent
  262.  
  263. End Sub
  264.  
  265.  
  266. Sub atribuirobjeto()
  267.  
  268. Dim wb As Workbook
  269. Dim ws As Worksheet
  270. Dim box As Range 'variável box - para representar o range e localizar ou definir um intervalo de células
  271.  
  272. Set wb = Workbooks(1) 'precisa do set quando for atribuir a objeto
  273. Set ws = Workbooks(1).Worksheets(1)
  274. 'ou
  275. Set ws = wb.Worksheets(1) 'pode usar o wb para se refenciar ao objeto workbooks
  276.  
  277. 'de forma similar, ws engloba o wsheet e o workboooks
  278. Set box = ws.Range("C40")
  279. ws.Name = "anotacoes_vba"
  280. box.Value = 14
  281.  
  282. Debug.Print TypeName(box)
  283.  
  284. End Sub
  285.  
  286.  
  287. Sub reciclarsubs()
  288. Call atribuirobjeto 'a função call serve para reciclar uma sub dentro de outra sub
  289. Call prop3
  290.  
  291. End Sub
  292.  
  293.  
  294.  
  295.  
  296.  
  297. 'atribuir um argumento para um procedimento
  298.  
  299. Private Sub alimentadora(Value As Long) 'value é só uma variável QUALQUER, não é o objeto value
  300. Debug.Print Value
  301. End Sub
  302.  
  303. Sub saida_alim(Value As Long) 'value é só uma variável QUALQUER, não é o objeto value
  304. MsgBox (Value)
  305. End Sub
  306.  
  307. 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
  308. Debug.Print 1566
  309. End Sub
  310.  
  311. Sub reciclarsub_sem_a_call() 'todas são públicas por default
  312. Dim calc As Long
  313. calc = 5 * 2
  314.  
  315.  
  316. alimentadora (calc) 'aparentemente funciona bem sem a call, só dentro do mesmo módulo
  317. saida_alim (calc) 'funciona quase como aproveitar uma função def() no python
  318. Call privado
  319.  
  320. End Sub
  321.  
  322. Sub terminar_antesdo_endsub()
  323.  
  324. Debug.Print 34
  325. Exit Sub 'pra terminar essa sub antes do end sub
  326. Debug.Print 405
  327.  
  328. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement