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やチャットでパスワード通知
- セキュリティ強化された自動レポート配信が完成


