検索

キーワード


目次

乱数(数字・英字)を発生させる方法

  • 公開日:2026-07-27 09:53:34
  • 最終更新日:2026-07-26 20:26:10

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

こんにちは。

IMMRです。

今回は乱数について説明します。


なにかしらの業務で乱数の数値または、英字を使用することはあると思います。

そこでリテラル値ではなく、コンピュータがRnd関数で求めた乱数(ランダムで決めた)を算出します。


数字

関数は以下のようになっています。

図1 Rnd関数説明


赤枠の箇所に最大値

緑枠の箇所に最小値を入力するだけです。


ここでは、1から99までの数値を乱数にしています。

※もちろん数値を変えれば、1桁や3桁や4も出来ます。


では、プログラムを記載してみます。

Sub TEST()

    Dim R As String
    
    Randomize

    R = Int((99 - 1 + 1) * Rnd + 1)

    MsgBox R

End Sub


まずは「Randomize」で乱数の初期化を行います。

そうしたら、Int((99 - 1 + 1) * Rnd + 1)で1~99の乱数を出力します。

出力した乱数は、変数Rにセットします。

そして、最後にメッセージボックスで変数Rに設定している数値を表示します。

今回は、こうなります。

図2 数値(1から99)の実行


きちんと、発生した乱数(1~99)が表示されています。指定していない3桁の数字は表示されません。

また、乱数の表示であるので

実行するたびに値は変わっていきます。

図3 数値の実行(多数)


このような感じで最小値~最大値の乱数の数値を表示することができます。


英字

英語(アルファベット)の場合は、ちょっと特殊な方法で行います。

それは、Rnd関数Chr関数を使います。

なぜ、Chr関数を使用しないといけないかというとRnd関数からは、アルファベットを取得できないからです。数字だけです。

Chr関数は決められた文字コードを取得します。そのため、

Chr(65)~Chr(90)は、大文字のAからZ

Chr(97)~Chr(122)は小文字のaからz

となっています。


Chr(65)→ 「A

Chr(90)→ 「Z

Chr(97)→ 「a

Chr(122)→「z

のようになります。一覧でみるとこのような感じです。


大文字

図4 大文字


小文字

図5 小文字


になっています。

つまり、

Rnd関数で65から90の間の数値を取得して、取得した値をChr関数で取得すれば、アルファベットの大文字(AからZ)

Rnd関数で97から122の間の数値を取得して、取得した値をChr関数で取得すれば。アルファベットの小文字(aからz)を

取得出来ることになります。

では、それを踏まえてプログラムを作成していきます。まずは、大文字からです。


Sub TEST()

    Dim R, R2 As String
    
    Randomize

    R = Int((90 - 65 + 1) * Rnd + 65)

    R2 = Chr(R)

    MsgBox R2
End Sub


まずはランダム数で(65~90)の数値を取得します。

そして、取得した数値をChr関数でコード文字に変換します。

実行すると

図6 アルファベット(大文字)(AからZ)の実行


が表示されます。乱数のため、押すごとにアルファベットも変わります。


図7 アルファベット(大文字)の実行(多数)


AからZの文字が表示されていますね。

次に小文字ですがプログラムは以下のようになります。

プログラムは以下のようになります。

Sub TEST2()

    Dim R, R2 As String
    
    Randomize

    R = Int((122 - 97 + 1) * Rnd + 97)

    R2 = Chr(R)

    MsgBox R2
End Sub


上記の大文字と変わっているところは、

R = Int((90 - 65 + 1) * Rnd + 65)

R = Int((122 - 97 + 1) * Rnd + 97)

であり、乱数の65から90を

97から122に変更しただけです。

それでプログラムを実行してみます。

Sub TEST2()

    Dim R, R2 As String
    
    Randomize

    R = Int((122 - 97 + 1) * Rnd + 97)

    R2 = Chr(R)

    MsgBox R2
End Sub



これで実行すると

小文字(1文字)

図8 アルファベット(小文字)(aからz)の実行


と表示されます。

もちろん、押すたびに違う文字が表示されます。

小文字(5文字)

図9 アルファベット(小文字)の実行(複数)


このように「数字」「アルファベット(大文字)」「アルファベット(小文字)」を表示しました。

では最後に、

数字(1から9)」と「アルファベット(大文字)(AからZ)」と「アルファベット(小文字)(aからz)」の3つに対して、

Rnd関数で表示して、結合した文字を表示させます。

Sub TEST3()

    Dim R As String
    Dim Rd1, Rd2, Rd3 As String
    
    Randomize
    Rd1 = Int((9 - 1 + 1) * Rnd + 1)
    Randomize
    R = Int((90 - 65 + 1) * Rnd + 65)
    Rd2 = Chr(R)
    Randomize
    R = Int((122 - 97 + 1) * Rnd + 97)
    Rd3 = Chr(R)
    MsgBox Rd1 & "-" & Rd2 & "-" & Rd3
End Sub


このプログラムは、

数字(1から9)の乱数をRd1に

アルファベット(大文字)(AからZ)をRd2に

アルファベット(小文字)(aからz)をRd3に  挿入して、

最後にRd1Rd2Rd3を合わせて、メッセージボックスで表示しています。

※わかりやすく見やすくするために間にハイフン(”ー”)を入れています。


下記が結果です。

3文字の結果

図10 3種類の実行


結果を見るとそれぞれが表示されていることがわかります。

3文字の説明

図11 3種類実行の説明


もちろん、再度、実行すれば違う文字のメッセージが表示されます。


以上のようにやれば、数字、アルファベット(大文字)、アルファベット(小文字)で

どのようなパターンでも乱数で自由に表示することが出来ます。


【著者】

Imamura

「挑戦心」を忘れずに、新しいことにチャレンジしています。 資格:VBAエキスパート Excel VBA(ベーシック/スタンダード) 等

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事