パンプキンスパイスラテ

IT系のことが多めの日記帳です

Outlookで件名と送信先をチェックするマクロを作成

はじめてマクロというものを作ってみた。
参考:件名の入れ忘れ防止用マクロを作成(Outlook用) | ライフハッカー[日本版]

仕様

  • 送信ボタンを押下した際、件名が空欄の場合、確認ダイアログ表示
  • 送信ボタンを押下した際、送信先(To,Cc,Bcc)に「-all」が含まれる場合、確認ダイアログ表示

この「-all」の部分は各自置き換えちゃってください。

手順

  1. Outlookツールバーから「ツール」→「マクロ」→「Visual Basic Editor」を選択
  2. 左側にあるツリービューから「ThisOutlookSession」をダブルクリック
  3. 開いたウインドウに下記ソースをコピペして、ツールバーの「ファイル」→「上書き保存」

以上

ソース

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

Dim strSubject As String
Dim strTo As String
Dim strCc As String
Dim strBcc As String

strSubject = Item.Subject
strTo = Item.To
strCc = Item.CC
strBcc = Item.BCC

If Len(Trim(strSubject)) = 0 Then
  Prompt$ = "件名が入力されていません。送信しますか?"
  If MsgBox(Prompt$, vbYesNo + vbQuestion + _
    vbMsgBoxSetForeground, "Check!") = vbNo Then
    Cancel = True
  End If
End If

If Cancel <> True And (binCheck(strTo) Or binCheck(strCc) Or binCheck(strBcc)) Then
  Prompt$ = "ALLが送信先に含まれています。送信しますか?"
  If MsgBox(Prompt$, vbYesNo + vbQuestion + _
    vbMsgBoxSetForeground, "Check!") = vbNo Then
    Cancel = True
  End If
End If

End Sub


Function binCheck(strLen)
  Dim objRE
  Set objRE = CreateObject("VBScript.RegExp")
  objRE.IgnoreCase = True
  objRE.Pattern = "\-all"
  binCheck = objRE.Test(strLen)
  Set objRE = Nothing
End Function

なにぶん初めてVBScriptを書いたので、書き方がおかしいかもしれませんがあしからず><
一応動作は問題なさそうです><
これでもうメールの送り間違いは激減するね!
というか、それくらいちゃんと確認しろって話だけど。。。