"Keyword:"の本文に現れる文の中のすべてのテキストを特定するExcel VBAスクリプトに行を挿入しようとしています。カンマ区切りの単語をそれぞれ別々のExcelセルにコピーします。フレーズは何でもかまいませんが、常に1つの単語ですが、あらかじめ定義することはできません。 ExcelでExcel VBA - 電子メールから別々のExcelセルにカンマ区切り文をコピーする
Keyword: phrase1, phrase2, phrase3, phrase4
結果、::私は、次のようなものを使用しようとしましたが、そこからどこへ行くかわからない
First email: A1 phrase1 B1 phrase2 etc.
Second email: A2 phrase1 B2 phrase2 etc.
例えば、電子メールのような行が含まれてい:
CreateObject("VBScript.RegExp").Pattern = "((Keyword:)\s*(\w*),\s*(\w*),\s*(\w*),\s*(\w*),\s*(\w*))"
は、ここで私がこれまで持っているものです。
Option Compare Text
Sub Count_Emails()
Dim oNS As Outlook.Namespace
Dim oTaskFolder As Outlook.MAPIFolder
Dim oItems As Outlook.Items
Dim oFoldToSearch As Object
Dim intCounter As Integer
Dim oWS As Worksheet
Dim dStartDate, dEnddate As Date
Set oWS = Sheets("Sheet1")
Set oNS = GetNamespace("MAPI")
Set oTaskFolder = oNS.Folders("[email protected]")
Set oFoldToSearch = oTaskFolder.Folders("Inbox").Folders("New Folder")
Set oItems = oFoldToSearch.Items
intCounter = 1
dStartDate = oWS.Range("A1").Value
dEnddate = oWS.Range("B1").Value
Do
With oWS
If DateSerial(Year(oItems(intCounter).ReceivedTime), Month(oItems(intCounter).ReceivedTime), Day(oItems(intCounter).ReceivedTime)) >= dStartDate And _
DateSerial(Year(oItems(intCounter).ReceivedTime), Month(oItems(intCounter).ReceivedTime), Day(oItems(intCounter).ReceivedTime)) <= dEnddate And _
oItems(intCounter).Subject Like "*Keyword:*" Then
'Something needs to happen here? A VBScript.RegExp.Pattern maybe?
End If
End With
intCounter = intCounter + 1
Loop Until intCounter >= oItems.Count + 1
Set oNS = Nothing
Set oTaskFolder = Nothing
Set oItems = Nothing
End Sub
EDIT:フレーズがあらかじめ定義されていないことを明確にするため、何でも構いません。
EDIT2:電子メールの本文には、「キーワード:」とそれに続くカンマ区切りの1つの単語が含まれており、各単語はそれぞれのExcelセルにコピーされます。
を私はあなたがoItems.bodyを探していると思います。変数をバリアントとして宣言し、それをメッセージ本文と同じにします。次に、instrで検索して探しているキーワードを見つけ出し、区切られた文字列を抜き出すことができます。 – Hrothgar