VBATips

ランダムな日付取得処理をパーツ化する【Rnd関数応用】【ExcelVBA】

ランダムな日付を作成したい

任意の日付の間でランダムな日付取得をしたいケースがあります。
単純なランダム数値は乱数を発生させるRnd関数で可能なため、Rnd関数を応用します。
指定した日付範囲内で、ランダムな日付を取得する方法を説明します。

ランダムな日付を取得するサンプルコード

sDate→開始日付、eDateを終了日付とし、その間の日付を取得します。
fmtは取得する表示形式です。その他形式はこちらを参照ください。

'■指定範囲内でランダムな日付を取得
Public Function Call_RndDate(sDate As Date, eDate As Date, ByVal fmt As String)
    Dim rnd As Date
    Randomize
    
    rnd = Int((eDate - sDate + 1) * rnd + sDate)
    Call_RndDate = Format(rnd, fmt)
End Function

実際の使い方

Public Sub sample()
    Debug.Print Call_RndDate("2021/01/01", "2021/12/31", "gggee年mm月dd日")   '令和03年10月10日
    Debug.Print Call_RndDate("2021/01/01", "2021/12/31", "yyyy/mm/dd")        '2021/01/19
    Debug.Print Call_RndDate("2021/01/01", "2021/12/31", "yy.m.d")            '21.6.12

  ’実際にはランダムなので、上記取得例はサンプルです。
End Sub

関連記事

コメント

タイトルとURLをコピーしました