LoginSignup
3
5

More than 5 years have passed since last update.

社外へメール送信するときにメッセージボックスを出したい。

Last updated at Posted at 2017-03-15

やらかしましてね

社内用のメールを意図せず社外に送ってしまう人がいましてね。
「気を付けましょう」って通達来たけどクソの役にもたたんので
プログラムで確認をうながすことにしました。

環境

使用するソフトウェア:Outlook(Microsoft Office Standerd 2010)
言語:VBA

機能

社外へのメール送信時にメッセージを出して送信先を確認させる。

できた

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Const FLAG_LOCAL = 1
    Const FLAG_EXTDOMAIN = 2

    Dim strInHouse As String
    Dim strOutSide As String
    Dim strMsg As String
    Dim iFlag As Integer
    Dim objRec As Recipient
    Dim strDomain As String
    '
    strInHouse = ""
    strOutSide = ""
    iFlag = 0

    'ドメインを確認
    For Each objRec In Item.Recipients
        ' ドメイン部を切り出し
        strDomain = Mid(objRec.Address, InStr(objRec.Address, "@") + 1)

        If strDomain = "local.co.jp" Then
            '自社
            iFlag = iFlag Or FLAG_LOCAL
            strInHouse = strInHouse + objRec.Name
        Else
            '他社
            iFlag = iFlag Or FLAG_EXTDOMAIN
            strOutSide = strOutSide + objRec.Address + vbNewLine
        End If
    Next

    'メッセージ表示
    Select Case iFlag

        Case FLAG_LOCAL
            strMsg = strMsg + "社内のみの送信です"

        Case FLAG_EXTDOMAIN
            strMsg = strMsg + "社外ドメインへの送信です" + vbNewLine
            strMsg = strMsg + vbNewLine + "[社外]" + vbNewLine + strOutSide + vbNewLine

        Case FLAG_LOCAL Or FLAG_EXTDOMAIN
            strMsg = strMsg + "社内および社外への送信です" + vbNewLine
            strMsg = strMsg + vbNewLine + "[社内]" + vbNewLine + strInHouse + vbNewLine + "[社外]" + vbNewLine + strOutSide + vbNewLine

    End Select

    strMsg = strMsg + "[!!!注意!!!]" + vbNewLine + "社外に送信するときは、情報システム規則により" + vbNewLine + "上司を送信先(宛先/CC/BCC)に加える必要があります"

    If iFlag <> FLAG_LOCAL Then

        Dim rc As VbMsgBoxResult
        rc = MsgBox(strMsg, vbOKCancel)

        If rc = vbCancel Then
            Cancel = True
        End If
    End If
End Sub

ところで

コードのシンタックス対応にVBAってないんだね

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5