ランダム文字列を生成する関数
お仕事で
「8文字のランダム文字列をいっぱい生成する」
という作業があったのでExcelVBAでマクロ組んで片付けました。
参考:VBAでランダムな文字列を生成する関数 - スイナシア
http://suin.asia/2008/12/15/vba-random-letters.html
…参考というか丸パクリです。
むしろ機能制限版です。
他にも「文字列の先頭は英字のみ」などの制限がありましたが
そちらは呼び出し元で制御していました。
' 引数:生成したい文字列の文字数 Private Function makeRandomString(Optional iLength As Integer = 8) As String ' 変数 Dim sString As String '生成した文字列を放り込むやつ Dim sChars As String '使用可能文字を放り込むやつ Dim i As Integer 'カウンタ変数 '使用可能文字 sChars = "abcdefghijklmnopqrstuvwxyz1234567890" ' 生成文字数分の回数、ランダムで文字を選びくっつける For i = 1 To iLength sString = Mid(sChars, Int(Len(sChars) * Rnd + 1), 1) & sString Next i makeRandomString = sString End Function
ワークシートにきっちり表示するわけではなく、少数をささっと生成するだけならこういう感じで使ってます。
Public Sub main() Debug.Print makeRandomString() End Sub