Excel VBA 毎回異なる値を出力|ランダムな数値を自動で生成する方法

 

Excel VBAで、毎回異なる値を出力する。ランダムな数値を自動で生成する方法を紹介します。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

 

Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る

 

Excel VBA ランダムな数値を自動で生成|シーン

以下のシーンで利用します。

・抽選やくじ引き
ランダムな番号や名前を選ぶ

・データテスト
仮のデータをランダムに作る

・シミュレーション
不確定な動作を再現するために使う

 

マクロができる人が少ない職場
数年後にはあなたより効率的な後輩にポジションを奪われるかもしれません。
👉 詳細はこちら

 

Excel VBA ランダムな数値を自動で生成サンプルコード

基本構文(0~1未満の乱数を生成)

Option Explicit

Sub ShowRandomNumber()
    MsgBox Rnd  '例:0.845679 など
End Sub

特定の範囲で乱数(例:1〜10)

Option Explicit

Sub RandomBetween1and10()
    Dim r As Integer
    Randomize                      '初期化(実行時刻を元に乱数を変える)
    r = Int(10 * Rnd) + 1          '1~10の整数
    MsgBox r
End Sub

 

注意点

・Randomizeを使う
これを使わないと毎回同じ乱数が出ることがある

・Int()で切り捨て
小数を使いたくない場合は必須

・0スタートに注意
Rndは 0以上1未満(つまり1は含まれない)

 

ランダムに3人の中から1人選ぶ

Option Explicit

Sub PickRandomName()
    Dim names As Variant
    names = Array("田中", "佐藤", "鈴木")
    
    Dim index As Integer
    Randomize
    index = Int(3 * Rnd)
    
    MsgBox "選ばれたのは: " & names(index)
End Sub

 

Excel VBA ランダムな数値を自動で生成まとめ

・Rnd → 0以上1未満のランダムな小数を返す

・Randomize → 実行ごとに結果を変える(毎回入れるのが基本)

・Int(x * Rnd) + a → 任意の範囲(a〜x+a-1)の整数を作れる

・標準モジュールでOK!初心者はSubプロシージャで動作確認

 

VBAマクロが書けるベースを作りたい方は、VBAエキスパート資格取得を挑戦してみてください。

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

下記から無料問題集ができます。

 

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。