指定した範囲の整数乱数を作る
RndとIntを使って、最小値と最大値の両方を含む整数を生成します。
実行前に確認
- Rndは0以上1未満の疑似乱数です。結果の重複や偏りが一時的に生じても、それだけで異常ではありません。
- 繰り返し多数の乱数を作る場合はRandomizeをループの前に1回だけ置きます。
- これは練習用の乱数です。パスワードや暗号鍵の生成には使わないでください。
- Excel実機での動作は未確認です。コピーした練習用ブックで試してください。
1サンプルコード
Option Explicit
Sub Example7059()
Dim minimum As Long
Dim maximum As Long
Dim result As Long
minimum = 1
maximum = 6
Randomize
result = Int((maximum - minimum + 1) * Rnd + minimum)
MsgBox "1~6の乱数: " & result
End Sub図で見る1~6の整数を1つ作る
イメージ図0以上1未満の疑似乱数をサイコロの範囲に変換します。
最小1・最大6を指定
minimum = 1、maximum = 6。Randomizeで初期化
6倍して1を加え、切り捨て
Int((maximum − minimum + 1) × Rnd + minimum)で整数化
1~6のいずれかを表示
生成されたresultを「1~6の乱数」として表示
結果は毎回固定ではなく、連続して同じ値になることもあります。暗号用途には使いません。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
Windows版デスクトップExcelの練習用ブックを.xlsm形式で保存します。Alt+F11でVBEを開き、[挿入]→[標準モジュール]で作った空のモジュールに、Option Explicitから末尾まで、この例だけを貼り付けます。
- 2
セルの準備は不要です。サイコロの例として最小値1・最大値6を指定しています。
- 3
Example7059のSub内にカーソルを置き、F5キーで実行します。
- 4
1~6のいずれか1つが表示されます。再実行時も同じ値になることがあります。