【ExcelVBA・マクロ】エクセルでランダムなパスワードを自動生成する方法【業務効率化】

ExcelVBA

「ユーザーごとに異なるパスワードを作りたい」
「安全なパスワードを一括で発行したい」

そんなときに便利なのが Excel VBAでのランダムパスワード生成マクロです。
この記事では、英数字+記号を含んだパスワードを自動生成する方法をご紹介します。

動作イメージはこちら

この記事はこんな方におすすめ

・Excelでパスワードを管理をしている

・社内ユーザーごとに異なるパスワードを発行したい

・強力なパスワードを簡単に作成したい

シートの確認

今回はこのようなシートを使います。A列に名前が入力されていて、B列にパスワードが生成されます。

B列にパスワードを自動生成していきます。

VBAコード

ランダム(大文字を含む英数字+記号)パスワード生成するコード

Sub randomPass()

    Dim i As Long, j As Long
    Dim passLength As Long
    Dim charaType As String
    Dim password As String
    Dim lastRow As Long
    
    
    ' 使用する文字(英大文字・英小文字・数字・記号)
    charaType = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%&*"
    
    passLength = 12 ' パスワードの長さを指定
    
    With ActiveSheet
    
        ' A列の最終行を取得
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        
        ' A列の人数分、B列にパスワードを出力
        For i = 2 To lastRow
            password = ""
            For j = 1 To passLength
                password = password & Mid(charaType, Int(Rnd() * Len(charaType) + 1), 1)
            Next j
            .Cells(i, 2).Value = password
        Next i
        
    End With
    
    MsgBox "パスワードを生成しました!", vbInformation

End Sub

コードのポイント解説

コード部分説明
charaType = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%&*"使用する文字セット(英数字+記号)
passLength = 12パスワードの長さを12文字に指定
Rnd()乱数を発生させて文字をランダムに選択
Mid(charaType, Int(Rnd() * Len(charaType) + 1), 1)ランダムに選ばれた位置の文字を取り出す
.Cells(i, 2).Value = passwordB列に生成したパスワードを出力

マクロ実行

さきほど入力したコードを実行すると、B列にランダムなパスワードが生成されます。

コメント

タイトルとURLをコピーしました