|
パスワード生成時に必ず数字を含めてパスワードを生成したい
下記マクロで実行しておりますが、生成されるパスワードに数字が含まれない場合があります 
生成されるパスワードに数字を含めたいのですが、
どのようにすれば良いでしょうか?
ご教授下さい
EXCEL2010を利用しております
Sub Macro1()
Const DEFAULT_COLS = 8 ' パスワードの桁数
Const DEFAULT_NUM = 1 ' パスワードの個数
Dim cols As Integer
Dim num As Integer
Dim chars As String, password As String
Dim upper As Integer, pointer As Integer, i As Integer
Set MenuSheet = Worksheets("MENU")
Set PasswordSheet = Worksheets("password")
' パスワードの桁
cols = MenuSheet.Range("COLS").Value
If cols < 1 Then
cols = DEFAULT_COLS
End If
' パスワードの個数
num = MenuSheet.Range("NUM").Value
If num < 1 Then
num = DEFAULT_NUM
End If
' 文字種類
kind = MenuSheet.Range("KIND").Value
Select Case kind
Case "英字": chars = "abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
Case "数字": chars = "0123456789"
Case "記号": chars = "!#$%&@?\+-_"
Case Else: chars = "abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#$%&@?\+-_"
End Select
upper = Len(chars)
PasswordSheet.Activate
PasswordSheet.Range("A:B").ClearContents ' 前回の結果を消去
PasswordSheet.Range("A1").Value = "No."
PasswordSheet.Range("B1").Value = "パスワード"
For j = 1 To num
password = ""
Randomize
For i = 1 To cols
pointer = Int(Rnd * upper) + 1
password = password + Mid(chars, pointer, 1)
Next
PasswordSheet.Cells(j + 1, 1).Value = j
PasswordSheet.Cells(j + 1, 2).Value = password
Next
End Sub
最後まで見てくださりありがとうございました
宜しくお願い申し上げます
|
|