VBA Randomize

Declaração Randomize em VBA

A instrução VBA Randomize é uma instrução simples de uma linha que adicionamos antes de aplicar a função RND. Sempre que uma pasta de trabalho é reaberta, a instrução Randomize fornece um novo número de semente para a função RND, dependendo da hora do sistema do computador.

Antes de falar sobre a instrução Randomize, deixe-me apresentar a você uma função RND simples com VBA.

Como uma função de planilha “RAND”, em VBA “RND” também gerará números aleatórios maiores que 0, mas menores que 1.

Agora dê uma olhada na sintaxe da função “RND”.

[Número]: Podemos transmitir o argumento de três maneiras.

  • Se passarmos o número como <0, ele continuará gerando o mesmo número aleatório todas as vezes.
  • Se passarmos o número como 0, ele repetirá o número mais recente fornecido.
  • Se passarmos o número> 0, ele continuará fornecendo diferentes números aleatórios, ou seja, o próximo número aleatório na sequência.

Exemplo

Para obter um exemplo, veja o código abaixo.

Código:

 Sub RND_Example () Debug.Print Rnd End Sub 

Quando executo o código na janela imediata, posso ver o número abaixo.

Da mesma forma, quando executo esse código por mais 3 vezes, posso ver os números abaixo.

Agora vou fechar a pasta de trabalho e reabri-la.

Agora vou voltar para a janela do editor visual básico.

Agora a janela imediata está vazia e limpa.

Agora, novamente, irei executar o código quatro vezes e ver quais são os números que obteremos na janela imediata.

Temos os mesmos números que obtivemos acima.

Este não parece um número aleatório porque sempre que reabrimos o arquivo, tendemos a obter os mesmos números começando do zero.

Então, como geramos números aleatórios, independentemente de a pasta de trabalho ter sido reaberta ou não?

Precisamos usar a declaração “Randomize”.

Como usar a instrução VBA Randomize?

Você pode baixar este modelo VBA Randomize Excel aqui - Modelo VBA Randomize Excel

Exemplo 1

Para obter números aleatórios, tudo o que precisamos fazer é adicionar o simples “Randomize” de uma linha antes da função RND.

Código:

 Sub Randomize_1 () Randomize Debug.Print Rnd End Sub 

Agora irei executar o código 4 vezes e ver o que obtenho.

Ele gerou os números acima em minha janela local.

Agora vou fechar o arquivo e reabri-lo mais uma vez.

Como de costume, começamos do zero na janela do Visual Basic.

Agora irei executar novamente o código e ver quais números obtemos desta vez.

Uau!!! Obtivemos números diferentes desta vez.

Como adicionamos a instrução Randomize antes da função RND, obtemos diferentes números aleatórios sempre que reabrimos o arquivo.

Parece um número aleatório, não é ???

Exemplo # 2

Números Aleatórios Maiores que Um

Como vimos, a função “RND” pode gerar números de 0 a 1 apenas. Mas para gerar números maiores que um número aleatório, precisamos usar “RANDOM BETWEEN” que está disponível com a classe de função de planilha.

Portanto, para gerar números aleatórios maiores que um, precisamos usar o código abaixo.

Código:

 Sub Randomize_2 () Randomize Debug.Print Rnd * 100 End Sub 

Agora vou executar o código e ver o que temos.

Assim, podemos usar a instrução “Randomize” no VBA para gerar números aleatórios toda vez que reabrimos o arquivo Excel.