ExcelVBA ランダムな整数を生成するRnd関数の使い方とサンプルコード

 

ExcelVBA ランダムな整数を生成するRnd関数で、サンプルデータの作成やシミュレーション、テストデータの生成に役立ちます。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

2025年の目標は繰り返し作業に悩まされない年にしませんか? Excel VBAを活用した効率化がその第一歩
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

Excel VBA ランダムな整数を生成する利用シーン

以下のようなシーンで利用で表示します。

1.テストデータを作成する際にランダムな値を割り当てる。

2.シミュレーションでランダムな結果を用いる。

3.抽選やゲームのランダム要素を実装

使い方

VBAでランダムな整数を生成するには、 Rnd 関数を使用します。範囲指定したランダムな整数を取得する場合は、 Int 関数を組み合わせます。

Int((最大値 - 最小値 + 1) * Rnd + 最小値)

ポイント

1.乱数の初期化
毎回異なるランダム値を生成するには、 Randomize を使用して乱数を初期化します。これを省略すると、同じ値が繰り返される可能性があります。

2.Rndの戻り値
Rnd 関数は、0以上1未満の疑似乱数を返します。

3.範囲外エラーに注意
最大値と最小値の設定を間違えると、意図しない結果になることがあります。

 

Excel VBA  ランダムな整数を生成するサンプルコード

Excel VBAで効率化の準備をしてみませんか?2025年をよりスムーズに過ごすための資格
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

標準モジュール(ランダムな整数をセルに挿入する)
Option Explicit

Sub GenerateRandomIntegers()
    Dim ws As Worksheet
    Dim i As Integer
    Dim randomValue As Integer
    
    ' シートの設定
    Set ws = ThisWorkbook.Sheets(1)
    
    ' 乱数の初期化
    Randomize
    
    ' A1からA10にランダムな整数を生成して入力
    For i = 1 To 10
        randomValue = Int((100 - 1 + 1) * Rnd + 1) ' 1~100のランダム整数
        ws.Cells(i, 1).Value = randomValue
    Next i
End Sub

フォームモジュール(ランダムな整数をユーザーフォームのラベルやテキストボックスに表示する)

ユーザーフォームに以下を配置

1. ラベル(例: Label1 )を配置します。
2. コマンドボタン(例: CommandButton1 )を配置します。

Option Explicit

Private Sub CommandButton1_Click()
    Dim randomValue As Integer
    
    ' 乱数の初期化
    Randomize
    
    ' 1~50のランダム整数を生成
    randomValue = Int((50 - 1 + 1) * Rnd + 1)
    
    ' ラベルにランダム整数を表示
    Me.Label1.Caption = "ランダム値: " & randomValue
End Sub

ThisWorkbookモジュール(ランダム値をワークブックの特定のシートに自動入力)

Option Explicit

Private Sub Workbook_Open()
    Dim ws As Worksheet
    Dim randomValue As Integer
    
    ' ワークシートの指定
    Set ws = ThisWorkbook.Sheets(1)
    
    ' 乱数の初期化
    Randomize
    
    ' ランダム値をセルB1に入力
    randomValue = Int((20 - 5 + 1) * Rnd + 5) ' 5~20のランダム整数
    ws.Range("B1").Value = randomValue
End Sub

ランダムな整数の生成でテストデータやシミュレーションに役立てられます。必ず Randomize で乱数を初期化し、範囲を正しく設定してください。

これらを活用して、さまざまな場面で効率的にランダム値を生成できます。

 

Excel VBAで自動化するコードのベースを習得したい方におすすめ!

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

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


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

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

 

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