2017-03-07 18 views
0

コンテキストパースHTML形式の電子メール(ないURL)

。 電子メールにはテーブルがあります。 私はテーブル内の個々のセルにアクセスできるようにテーブルを解析したいと思います。の配列(グループ)を作成します

objIE.document.getElementsByTagName("td") 

...:SO上の数多くの質問と回答を1として

、私はこれにアクセスする方法は、このような何かをすることであることを見出しましたHTMLファイル内の列。ソートされています。

質問:

代わりのobjIE.document。いくつかのURLを指している多くのSOの例では、私はこの特定のケースで電子メールにそれを指摘したいと思います。この特定のケースでは、私の電子メールは私がやっによって作られてきた「メッセージ」と呼ばれている:

Dim Msg As Outlook.MailItem 

を私のコードでは、私はこのために行われている以下:私は "というエラーを取得しかし

Msg.Body.getElementsByTagName ("td") 

無効な修飾子 "エラーが発生しました。

どのようにテーブルのセル/要素にアクセスするためのアイデア?

+0

あなたは[MailItem](HTTPSの[のHtmlBody](https://msdn.microsoft.com/en-us/library/office/ff868941.aspx)プロパティを使用してみましたが。 microsoft.com/en-us/library/office/ff861332.aspx)? –

+0

私は一歩近づいているようです。 Testing = item.HTMLBodyが動作し、コンソールからログアウトすると大きなHTMLメッセージが1つ表示されます。ありがとうございます。今、私がTesting.getElementsByTagName( "p")(0)を実行すると、電子メールの最初の段落を取得する必要がありますが、 "invalid qualifier" –

答えて

0

ここではかなり近づくべきアプローチがあります。あなたがしたいことは、電子メールのHTMLをHTMLファイルに保存することです。要素セレクタを使用して興味のあるものを見つけることができます。には、というOutlookオブジェクトへの参照が必要です。

ここに簡単な例を示します。 // MSDN:

Option Explicit 

Public Sub SOTest() 
    Dim outlook  As outlook.Application 
    Dim ns   As outlook.NameSpace: Set ns = GetNamespace("MAPI") 
    Dim folder  As outlook.MAPIFolder: Set folder = ns.PickFolder 
    Dim item  As outlook.MailItem 
    Dim html  As Object: Set html = CreateObject("htmlfile") 
    Dim elements As Object 
    Dim element  As Object 

    For Each item In folder.Items 
     If item.Class = olMail Then ' Make sure it's a Mail Item...change if not needed 
      html.Body.Innerhtml = item.HTMLBody ' set the body of the email equal to the html from outlook email 
      Set elements = html.getElementsByTagName("td") 
      For Each element In elements 
       Debug.Print element.InnerText 
      Next 
     End If 
    Next 

End Sub 
関連する問題