Variáveis e Tipos de Dados
Deslize para mostrar o menu
Todo procedimento que você escreve precisa de um local para armazenar valores enquanto executa — como o nome de um cliente, um total acumulado, um indicador de sim/não. Isso é uma variável: uma caixa rotulada na memória onde você pode colocar um valor e recuperá-lo depois. Você cria uma com Dim (abreviação de "dimension"), e informa ao VBA antecipadamente que tipo de valor ela irá armazenar:
Dim productName As String
Dim currentStock As Integer
Dim unitPrice As Double
Cada linha reserva um espaço rotulado: productName só pode armazenar texto, currentStock apenas números inteiros, unitPrice apenas números com decimais. Declarar o tipo antecipadamente não é burocracia desnecessária — é o que permite ao VBA identificar erros antes que se tornem bugs. Se você tentar executar productName = 47, o VBA interrompe imediatamente com um erro de incompatibilidade de tipo, em vez de armazenar algo incorreto silenciosamente e causar confusão mais adiante.
Tipos de Dados Comuns
Uma regra prática: use Long em vez de Integer para contadores e números de linha — não é mais lento no Excel moderno e não causa estouro em conjuntos de dados grandes. Você verá Dim i As Long em todo este curso.
Option Explicit
Coloque esta linha única no topo de cada módulo, antes de qualquer Sub. Ela muda uma coisa: o VBA agora se recusará a executar qualquer linha que use uma variável que você não declarou antes com Dim:
Option Explicit
Sub Example()
Dim total As Double
total = 100 ' works — declared above
toatl = 200 ' typo — Option Explicit catches this at compile time
End Sub
Sem Option Explicit, esse erro de digitação cria silenciosamente uma nova variável chamada toatl, e você passaria vinte minutos tentando entender por que total nunca muda. Esse único hábito previne mais bugs do que qualquer outra coisa neste capítulo.
Constantes
Constantes são valores nomeados que nunca mudam enquanto o código roda — ideal para coisas como taxas de imposto ou limites:
Const REORDER_THRESHOLD As Integer = 20
Usar REORDER_THRESHOLD em vez de digitar 20 em todo lugar significa que, se a regra de negócio mudar, você edita uma linha em vez de procurar por todo o código.
Tarefa
- Em
Section_2_VBA_Fundamentals.xlsm, escreva umSubque declare uma variávelStringpara o nome do produto, umDoublepara o preço e umIntegerpara o estoque. - Atribua a eles os valores para
USB-C Hubdigitando os valores literais. - Use
MsgBoxpara exibir os três em uma única mensagem, concatenados. - Adicione
Const LOW_STOCK As Integer = 20acima do seuSube utilize-o em umMsgBoxcomparando com a variável de estoque.
- São necessárias três linhas
Dimcom tipos diferentes — consulte a Figura 2.1 se esquecer a sintaxe:Dim name As Type. - A linha do USB-C Hub é Price 39.50, Stock 44. Basta atribuir diretamente:
price = 39.50. - A concatenação utiliza
&, não+. Monte a string em partes:"Name: " & productName & ", Price: " & price. - Constantes são declaradas fora de qualquer
Sub, no topo do módulo, logo apósOption Explicit. ComparestockCountcomLOW_STOCKusando apenas>ou<dentro de uma string noMsgBox— ainda não é necessário usarIf, apenas mostre ambos os valores para comparar visualmente.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo