ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 비밀번호 생성
    VB(A) 2015. 10. 31. 08:06

    영문, 숫자, 특수문자의 숫자를 지정하고

    그만큼 문자를 생성하는 매크로

    해외에서 짜깁기.


    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 StringAs 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

    댓글