
Excel VBAで、毎回異なる値を出力する。ランダムな数値を自動で生成する方法を紹介します。使い方や注意点など、サンプルコードをもとに具体的に解説します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
Excel VBA ランダムな数値を自動で生成|シーン
以下のシーンで利用します。
・抽選やくじ引き
ランダムな番号や名前を選ぶ
・データテスト
仮のデータをランダムに作る
・シミュレーション
不確定な動作を再現するために使う
Excel VBA ランダムな数値を自動で生成|サンプルコード
基本構文(0~1未満の乱数を生成)
Option Explicit
Sub ShowRandomNumber()
MsgBox Rnd '例:0.845679 など
End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
特定の範囲で乱数(例: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プロシージャで動作確認
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。