Excel VBA | 実務用 VBA コード集(テンプレ付き)

Excel VBA VBA
スポンサーリンク

VBA拡張版:パスワードを自動生成し、管理者にSMSやチャット通知で送信

これまで「パスワード付きZIPをメールで送信」し、別メールでパスワードを通知する方法を紹介しました。今回はさらに拡張して、パスワードを自動生成し、管理者にSMSやチャット通知で送信するテンプレートです。これにより、メール以外の経路で安全にパスワードを共有できます。


注意点

  • VBA単体ではSMSやチャット送信機能はありません。
  • 外部サービスのAPI(例:Twilio, Slack, Microsoft Teams, LINE Notifyなど)を利用する必要があります。
  • VBAからは WinHTTPやMSXML2.XMLHTTP を使ってAPIにリクエストを送るのが一般的です。

サンプルコード(TwilioでSMS送信)

TwilioのアカウントとAPIキーが必要です。

Option Explicit

'=== ランダムパスワード生成関数 ===
Function GeneratePassword(Optional length As Integer = 12) As String
    Dim chars As String, i As Integer, result As String
    chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*"
    Randomize
    For i = 1 To length
        result = result & Mid(chars, Int(Rnd() * Len(chars)) + 1, 1)
    Next i
    GeneratePassword = result
End Function

Sub SendPasswordViaSMS()
    Dim password As String
    password = GeneratePassword(12)
    
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    Dim twilioSID As String, twilioToken As String, fromNumber As String, toNumber As String
    twilioSID = "your_twilio_account_sid"
    twilioToken = "your_twilio_auth_token"
    fromNumber = "+1234567890" ' Twilio番号
    toNumber = "+819012345678" ' 管理者の携帯番号
    
    Dim url As String
    url = "https://api.twilio.com/2010-04-01/Accounts/" & twilioSID & "/Messages.json"
    
    Dim data As String
    data = "To=" & toNumber & "&From=" & fromNumber & "&Body=ZIPパスワード: " & password
    
    http.Open "POST", url, False, twilioSID, twilioToken
    http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    http.Send data
    
    MsgBox "パスワードをSMSで送信しました: " & password, vbInformation
End Sub
VB

サンプルコード(Slackでチャット通知)

SlackのWebhook URLを利用します。

Sub SendPasswordViaSlack()
    Dim password As String
    password = GeneratePassword(12)
    
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    Dim webhookURL As String
    webhookURL = "https://hooks.slack.com/services/XXXXX/XXXXX/XXXXX"
    
    Dim payload As String
    payload = "{""text"": ""🔑 ZIPパスワード通知: " & password & """}"
    
    http.Open "POST", webhookURL, False
    http.setRequestHeader "Content-Type", "application/json"
    http.Send payload
    
    MsgBox "パスワードをSlackに通知しました: " & password, vbInformation
End Sub
VB

この拡張版のポイント

  • ランダムパスワード生成 → 毎回異なる強力なパスワードを作成
  • SMS通知(Twilio) → 管理者の携帯に直接通知
  • チャット通知(Slack/Teams/LINE) → チーム全体に即時共有可能
  • メール以外の経路で通知 → セキュリティ強化

実務でのメリット

  • 多経路通知 → メール以外でパスワードを共有することで漏洩リスクを低減
  • 即時性 → SMSやチャットはリアルタイム通知に適している
  • 完全自動化可能 → タスクスケジューラと組み合わせれば「毎月のセキュアZIP+SMS/チャット通知」を自動送信

✅ まとめ

  • パスワードを自動生成
  • ZIPに設定してメール添付
  • 管理者にSMSやチャットでパスワード通知
  • セキュリティ強化された自動レポート配信が完成
タイトルとURLをコピーしました