5

問題:vbscriptを使用して受信メールを処理します。

Outlookバージョン:Outlook 2000

説明:Outlook 2000ではルールウィザードからVBAスクリプトを実行できないため、このRun a Program | VBScript方法を使用する必要があるため、これにVBAを使用することはできません。

私が知っていること:私はこのようにVBAからの電子メールを処理する方法を知っています

Sub Sample(MyMail As MailItem)
    Dim strID As String, olNS As Outlook.NameSpace
    Dim olMail As Outlook.MailItem

    strID = MyMail.EntryID
    Set olNS = Application.GetNamespace("MAPI")
    Set olMail = olNS.GetItemFromID(strID)

    '~~> Rest of the code

    Set olMail = Nothing
    Set olNS = Nothing
End Sub

また、すでに受信トレイにある電子メールでvbscriptを実行する方法も知っています。OL2000でvbscriptを実行するには、それを使用Run A Programしてvbsファイルを指す必要があります。OL2000では使用Run A Scriptできません。

私が知らないこと:そしてこれは私が助けを必要としているところです。VBSのメール受信ボックスにヒットしていないメールオブジェクトを取得する方法。オブジェクトを取得したら、残りの必要な操作を実行できます。

4

1 に答える 1

4

この記事を信じるなら、OL2000はルールからVBAマクロを実行できないというのは正しいことです。

受信メールの処理方法は次のとおりです。VBAを使用しますが、私が知る限り、VBScriptで使用する方法はありません。

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 
  If TypeName(item) = "MailItem" Then
    Set Msg = item 
    '~~> do something with the new message here
  End If
ProgramExit: 
  Exit Sub
ErrorHandler: 
  MsgBox Err.Number & " - " & Err.Description 
  Resume ProgramExit 
End Sub

このコードをThisOutlookSessionモジュールに貼り付けてから、Outlookを再起動する必要があります。

于 2012-07-13T16:50:32.953 に答える