0

こんにちは、Outlook 2003にルールを追加するVBスクリプトを作成する方法を知っている人はいますか?ユーザーPersonA@mail.comから電子メールを受信すると、その電子メールがPersonB@mail.comに転送されます。

また、以前に作成したルールを削除するVBスクリプトを作成できるかどうかも知りたいです。

少し調べてみたところ、これを行うためのマクロを作成することは可能のようですが、編集する必要のあるオブジェクトや何らかのAPIを使用する必要があるオブジェクトに慣れていないため、完全に失われています。

ルールを追加するためにマクロを作成する必要があるかもしれません。これはVBスクリプトを使用してマクロを起動します。

4

1 に答える 1

1

代わりにストレートVBAを使用します。ItemAddイベントを使用して、デフォルトの受信ボックスで着信メッセージを確認し、転送することができます。転送を変更する必要がある場合は、メールアドレスを簡単に編集できます。

元:

Private WithEvents Items As Outlook.Items 
Private Sub Application_Startup() 
Dim olApp As Outlook.Application 
Dim objNS As Outlook.NameSpace 
Set olApp = Outlook.Application 
Set objNS = olApp.GetNamespace("MAPI") 
Set Items = objNS.GetDefaultFolder(olFolderInbox).Items 
End Sub
Private Sub Items_ItemAdd(ByVal item As Object) 
On Error Goto ErrorHandler 
Dim Msg As Outlook.MailItem 
Dim newMsg As Outlook.MailItem
Dim recip As Outlook.Recipient

' *****************
' edit these to change forwarding rules
' *****************
Const INCOMING_EMAIL As String = "Persion@mail.com"
Const OUTGOING_EMAIL As String = "PersonB@mail.com"

If TypeName(item) = "MailItem" Then
Set Msg = item
  If Msg.SenderEmailAddress = INCOMING_EMAIL Then
    Set newMsg = Msg.Forward

    With newMsg
      Set recip = .Recipients.Add OUTGOING_EMAIL
      recip.Type = olTo
      .Send
    End With
    ' *****************
    ' perhaps a msgbox?
    ' MsgBox "Message forwarded", vbInformation
    ' *****************
  End If
End If
ProgramExit: 
Exit Sub
ErrorHandler: 
MsgBox Err.Number & " - " & Err.Description 
Resume ProgramExit 
End Sub

このコードはThisOutlookSessionモジュールに配置する必要があります。その後、Outlookを再起動する必要があります。配置の支援が必要な場合は、OutlookVBAコードをどこに配置するかを参照してください。

于 2012-06-20T15:18:22.177 に答える