Excelがあればできる!テストデータ生成コード

コンテンツ
IT・テクノロジー
商品番号っぽいテストデータが欲しかったのですが、
上手く作成してくれるサイトなどが見つけられなかったので自分で作ってみました!

●概要
大文字アルファベット、小文字アルファベット、数字を使ったランダムなテストデータが作成できます
1文字目は数字で2文字目は大文字アルファベットなど指定できます
文字数イミディエイトウィンドウに出力します

●必要な環境
 ExcelのVBEが出せる
 イミディエイトウィンドウが出せる

●手順
 VBEで挿入→標準モジュールを押します
 ↓↓そこにこれをコピペ↓↓(下に説明を書きますね)

Sub あ00あ()
    Dim StrLen As Integer
    Dim create As Integer
    Dim n(1 To 10) As String
    Dim j As Long
    Dim putstr As String
    '欲しい文字列の長さ設定(10文字まで)
    StrLen = 5
    'いくつ出力するかの設定
    create = 30
    Do While j < create
        n(1) = getWord("0", "9")
        n(2) = getWord("0", "9")
        n(3) = getWord("0", "9")
        n(4) = getWord("0", "9")
        n(5) = getWord("0", "9")
        n(6) = getWord("A", "Z")
        n(7) = getWord("0", "9")
        n(8) = getWord("A", "Z")
        n(9) = getWord("A", "Z")
        n(10) = getWord("A", "Z") 'StrLenによって切り捨てられるので放置でOK
        putstr = Join(n)
        putstr = Replace(putstr, " ", "")
        Debug.Print Left(putstr, StrLen)
        j = j + 1
    Loop
End Sub
Function getWord(min As String, max As String) As String
    Dim minAsc
    Dim maxAsc
    '1文字じゃないとだめ
    If Len(min) <> 1 Or Len(max) <> 1 Then
        getWord = ""
        Exit Function
    End If
    minAsc = Asc(min)
    maxAsc = Asc(max)
    If minAsc >= 48 And maxAsc <= 57 Then '数字
        If max >= min Then
            getWord = Str(Int((max - min + 1) * Rnd))
        End If
    ElseIf minAsc >= 65 And maxAsc <= 90 Then '大文字アルファベット
        getWord = Chr(Int((maxAsc - minAsc + 1) * Rnd) + minAsc)
    ElseIf minAsc >= 97 And maxAsc <= 122 Then '小文字アルファベット
        getWord = Chr(Int((maxAsc - minAsc + 1) * Rnd) + minAsc)
    End If
End Function

●説明
必要に応じてコピペした中の文字を編集していきます!
欲しい文字列の長さを指定します。これだったら5文字になります
'欲しい文字列の長さ設定(10文字まで)
StrLen = 5
何回イミディエイトウィンドウに出力するか指定します。これだと30回
 'いくつ出力するかの設定
 create = 30
どんな文字を出力するか指定していきます。
このような行↓を編集します。
n(1) = getWord("0", "9")
↑これだと1文字目は、0~9の数字がランダムに出ます 
n(2) = getWord("0", "9")
↑これだと2文字目が0~9!
n(3) = getWord("A", "D") 
↑3文字目はA~Dの中の文字をランダム
n(4) = getWord("6", "7")
↑4文字目は6か7どちらかがランダム
n(5) = getWord("d", "d")
↑5文字目は小文字のdしか出ない
 ここまでの太字部分を変えることで、何をランダムに出力するか指定できます
この(""、"")ダブルクォートで囲んだものは、同じ種類の文字(数字なら数字)を
小→大で1字ずつ指定してください
ダメな例
n(4) = getWord("A", "1") '種類が違う
n(5) = getWord("9", "0") ’大→小になっている
n(6) = getWord("0", "20") '一字ではない
3文字目はランダムではなく固定が(ここではハイフン)良い!という場合は
n(3) = getWord("0", "9")
↑この行をこれ↓に変えてください
n(3) = "-"
指定したい文字をダブルクォートで囲んでください!

コードは以上です!

その後、
あ00あ()Sub 
~~~
End Sub
の部分をアクティブにし、(このへんをクリック)
F5キーを押すか、実行ボタンを押せばイミディエイトウィンドウに出力できます!


テストデータが欲しい機会なんてそうそうないと思いますが!
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す