VBA: teste se um número é par ou ímpar

Vamos escrever quatro funções, cada uma usando uma maneira diferente de determinar a paridade de um número.

Com a WorksheetFunction

Use a função Excel Even:

Function ÉPar(Number As Long) As Boolean
    ÉPar = (WorksheetFunction.Even(Number) = Number)
End Function

Comparação binária

A partir do último dígito (i) do número e com a ajuda da comparação binária:

- se i And 1 = 0 então i é par;
- se i And 1 = 1 então i é ímpar.

Function ÉPar2(Number As Long) As Boolean
Dim lngTemp As Long
    lngTemp = CLng(Right(CStr(Number), 1))
    ÉPar2 = (lngTemp And 1) = 0
End Function

Dividir por dois

Dividir por dois. A diferença entre a parte inteira e eventualmente decimal = 0 se i for par.

Function ÉPar3(Number As Long) As Boolean
Dim sngTemp As Single
    sngTemp = Number / 2
    ÉPar3 = ((Int(sngTemp) - sngTemp) = 0)
End Function

Módulo

Usando o módulo:

Function ÉPar4(Number As Long) As Boolean
    ÉPar4 = (Number Mod 2 = 0)
End Function

Código de chamada

Option Explicit

Sub Main_Even_Odd()
Dim i As Long

    For i = -50 To 48 Step 7
        Debug.Print i & " : ÉPar ==> " & IIf(ÉPar(i), "is even", "is odd") _
         & " " & Chr(124) & " ÉPar2 ==> " & IIf(ÉPar2(i), "is even", "is odd") _
         & " " & Chr(124) & " ÉPar3 ==> " & IIf(ÉPar3(i), "is even", "is odd") _
         & " " & Chr(124) & " ÉPar4 ==> " & IIf(ÉPar4(i), "is even", "is odd")
    Next
End Sub

Foto: © dennizn - Shutterstock.com

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.
Veja também
Este documento, intitulado 'VBA: teste se um número é par ou ímpar', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.

Assine nossa newsletter!

Assine nossa newsletter!