2016-11-30 3 views
0

以下のコードは先週完璧に動作していましたが、現在このエラーが発生していますが、どこが間違っているのか分かりません。VB.netのOutlookエラー

できません。タイプをインタフェースするタイプ 'システム.__ comobject'「のCOMオブジェクトにMicrosoft.office.interop.outlook.mailitem

Try 
    Dim olApp As Outlook.Application 
    Dim olNs As Outlook.NameSpace 
    Dim olMail As Outlook.MailItem 
    Dim i As Integer 

    olApp = New Outlook.Application 
    olNs = olApp.GetNamespace("MAPI") 

    Dim Fldr As MAPIFolder 
    Fldr = olNs.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail) 
    i = 1 

    For Each olMail In Fldr.Items 
     If InStr(olMail.Subject, TextBox1.Text) <> 0 Then 
      olMail.Display() 
      i = i + 1 
     End If 
    Next olMail 

    Catch ex As System.Exception 
     MsgBox(Err.Description) 
End Try 
+0

なぜコード内のすべてのコメントがありますか? – Vikrant

+0

私はいくつかの異なる方法でテストしていました。 –

+0

Microsoft Outlookを更新したか、新しいコンピュータなどに切り替えたと思います。おそらく、使用しているOutlookのバージョンのOffice PIAを(再)インストールする必要があります。 – SSS

答えて

0

をキャストおそらく/アイテムでMailItem以外のオブジェクト(例えばReportItem、MeetingItem)がありますされますリスト。あなたがした何のために本当に感謝..

Try 
    Dim olApp As Outlook.Application 
    Dim olNs As Outlook.NameSpace 
    Dim olMail As Outlook.MailItem 
    Dim oObject As Object 
    Dim i As Integer 

    olApp = New Outlook.Application 
    olNs = olApp.GetNamespace("MAPI") 

    Dim Fldr As MAPIFolder 
    Fldr = olNs.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail) 
    i = 1 

    For Each oObject In Fldr.Items 
     If TypeOf oObject Is Outlook.MailItem Then 
      olMail = CType(oObject, Outlook.MailItem) 
      If InStr(olMail.Subject, TextBox1.Text) <> 0 Then 
       olMail.Display() 
       i = i + 1 
      End If 
     End If 
    Next olMail 

    Catch ex As System.Exception 
     MsgBox(Err.Description) 
End Try 
+0

はい、それは本当にありがたいことに何かをしてくれてありがとう.. 感謝のトン。 –

0

はい、それはやったトリックの下に試してみてください。..感謝の

トン。

関連する問題