ランダムな整数をセルに入力するマクロや、ランダムな日付を入力するマクロをご紹介してきました。
テストデータ・サンプルデータを作る場合、指定した文字列をランダムに入力するというマクロが欲しくなるということもあります。
例えば、
愛実
明日香
亜美
彩佳
というような人の名前を、ランダムにセルに入力したいという要望をいただくことがあります。
以下のようなVBA(Visual Basic for Applications)マクロを利用すると、事前に人名などの文字列を指定しておき、その指定した文字列を、選択されているセルに入力することができます。
Dim arr(1 To 4) As String
Dim rng As Range
arr(1) = "愛実"
arr(2) = "明日香"
arr(3) = "亜美"
arr(4) = "彩佳"
Randomize
For Each rng In Selection
rng.Value = arr(Int((Rnd * 4) + 1))
Next
まず配列変数・arrに
arr(1) = "愛実"
arr(2) = "明日香"
arr(3) = "亜美"
arr(4) = "彩佳"
のように文字列を格納し、For Each~Nextループの中で、ランダムに発生させた「1」から「4」の整数「Int((Rnd * 4) + 1)」を、配列・arrの添え字にして「arr(Int((Rnd * 4) + 1))」、配列から取得した文字列を、セルの値に代入「rng.Value =」しています。
事前に指定しておく文字列が3つの場合は、配列を3つ指定しておいて、上記マクロの
「arr(Int((Rnd * 4) + 1))」の部分を
「arr(Int((Rnd * 3) + 1))」とするといいでしょう。
Home » Excel VBA Rangeオブジェクト » 指定した文字列をランダムに入力するマクロ