-1

件名にあるように、次のコードで「メソッドまたはデータ メンバーが見つかりません」というばかげたエラー メッセージが表示されます。それを修正するために何をする必要があるのか​​ わかりません。多分、馬鹿なことですよね?変数を作成しているところに、tempMailItem という名前の変数があることに気付くでしょう。タイプは Outlook.MailItem です。ドット演算子をクリックすると、MailItem がメンバーの 1 つです。しかし、キャストを作成している Outlook オブジェクトにドット演算子を入力すると、突然、MailItem がそのオブジェクトのメンバーではなくなります。わからない!どうしたの?

アラン

Sub MoveHarpStatMail()

Dim olapp As Outlook.Application
Dim olappns As Outlook.NameSpace
Dim oitem As Object
Dim ItemsToProcess As Outlook.Items
Dim myFolder As MAPIFolder
Dim sFilter As String
Dim tempMailItem As Outlook.MailItem

On Error GoTo LocalErr

'set outlook objects
Set olapp = New Outlook.Application
Set olappns = olapp.GetNamespace("MAPI")
Set myFolder = olappns.GetDefaultFolder(olFolderInbox)
'Filter or only MailItems received today
sFilter = "[ReceivedTime] >= " & AddQuotes(Format(Date, "ddddd"))
Set ItemsToProcess = Session.GetDefaultFolder(olFolderInbox).Items.Restrict(sFilter)

For Each oitem In ItemsToProcess
 If TypeName(oitem) = "MailItem" Then
   Set tempMailItem = DirectCast(oitem, Outlook.MailItem) '<<<< Problem is here with Outlook object
   If CheckSubject(tempMailItem.Subject) Then
     MoveToArchiveFolder (tempMailItem)
  End If
 End If
Next oitem

ExitProc:
Set olapp = Nothing
Set olappns = Nothing
Set myFolder = Nothing
Set ItemsToProcess = Nothing

Exit Sub
4

1 に答える 1

2

DirectcastVBAにはありません。使用する:

Set tempMailItem = oitem
于 2012-12-05T23:38:40.833 に答える