영문, 숫자, 특수문자의 숫자를 지정하고
그만큼 문자를 생성하는 매크로
해외에서 짜깁기.
Function RandomPass(lowerCase As Integer, NumericChr As Integer, SpecialChr As Integer) As String Dim i As Byte Dim v As Variant Dim NonAlpha As Variant ' Set Non-alpha characters to choose from NonAlpha = Array("~", "@", "#", "$", "%", "^", "&", "*", "(", ")", "+", "?") For i = 1 To SpecialChr RandomPass = RandomPass & NonAlpha(Int((UBound(NonAlpha) - LBound(NonAlpha) + 1) * Rnd + LBound(NonAlpha))) Next i ' Set Numeric character ReDim v(48 To 57) For i = 1 To NumericChr RandomPass = RandomPass & Chr(Int((UBound(v) - LBound(v) + 1) * Rnd + LBound(v))) Next i ' Set lower case character ReDim v(97 To 122) For i = 1 To lowerCase RandomPass = RandomPass & Chr(Int((UBound(v) - LBound(v) + 1) * Rnd + LBound(v))) Next i RandomPass = ScrambleWord(RandomPass) End Function Function ScrambleWord(ByRef orderedWord As String) As String Dim temp As String Dim i As Long, RandChr As Long For i = 1 To Len(orderedWord) RandChr = Int(Rnd() * Len(orderedWord)) + 1 temp = Mid(orderedWord, i, 1) Mid(orderedWord, i, 1) = Mid(orderedWord, RandChr, 1) Mid(orderedWord, RandChr, 1) = temp Next i ScrambleWord = orderedWord End Function | cs |
'VB(A)' 카테고리의 다른 글
정규식을 이용한 텍스트 변경 (2) | 2015.11.08 |
---|---|
경우의 수 (0) | 2015.11.06 |
두가지 조건을 만족하는 값 나열 (0) | 2015.10.16 |
체크박스로 시트 보호 해제 및 셀 잠금 해제 (0) | 2015.10.14 |
숫자 섞기 (0) | 2015.10.02 |