| 
    
     |  | パスワード生成時に必ず数字を含めてパスワードを生成したい 
 下記マクロで実行しておりますが、生成されるパスワードに数字が含まれない場合があります 
 生成されるパスワードに数字を含めたいのですが、
 どのようにすれば良いでしょうか?
 ご教授下さい
 
 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
 
 最後まで見てくださりありがとうございました
 宜しくお願い申し上げます
 
 
 |  |