ワイズリマインダー

VBAで12文字のランダム文字列を作成する

自動的にパスワードを作成したい。
文字数は12文字。
使用する文字は英字の大文字小文字、数字、記号。
そのうち、数字と記号は必ず1つ加える。

Function getRandomStr() As String
    Const S_STR As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    Const S_INT As String = "0123456789"
    Const S_SYM As String = "!#$%&()=<>?@*+"
    
    Randomize
    
    Dim result As String
    '英字から10文字のランダム文字
    Dim i As Integer
    For i = 1 To 10
        result = result + Mid(S_STR, Int(Len(S_STR) * Rnd + 1), 1)
    Next
    
    Dim pos As Integer
    '数字を1つ加える
    pos = Int(Len(result) * Rnd + 1)
    result = Mid(result, 1, pos) & Mid(S_INT, Int(10 * Rnd + 1), 1) & Mid(result, pos + 1, 10 - pos)
    '記号を1つ加える
    pos = Int(Len(result) * Rnd + 1)
    result = Mid(result, 1, pos) & Mid(S_SYM, Int(11 * Rnd + 1), 1) & Mid(result, pos + 1, 11 - pos)

    getRandomStr = result
End Function

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

検索

最近のコメント

最近の投稿

タグ

フィード配信

アーカイブ

外部リンク