0

まず、私は VBA に非常に慣れていないため、特定のテンプレートに従う電子メールの数が多いため、データ照合を自動化して、現在必要なすべての切り取りと貼り付けから自分を救おうとしています。以前の質問をいくつか見ましたが、知識がほとんどないため、回答が具体的ではなく、理解できません。

これらの電子メールはそれぞれ特定の電子メール アドレスから送信されており、以下に示す標準的な形式になっています。

" dd/mm/yyyy hr.min.sec

xxx xxxxxxx xxxxxxxxxxxxxxxxx xxxx xxxxx "

この情報を Excel 2003 ワークシートにエクスポートまたはコピーして、個々の情報が 1 つの行の新しい列に表示され、各電子メールが新しい行になるようにしたいと考えています。受信したメールを特定のフォルダーで検索し (このメール アドレスに関連する Outlook のルールを既に設定しているため)、テンプレートに一致する各メールから情報をコピーして、単一の Excel ワークシート。その後、新しいメールを受け取るたびに、作成されたテーブルの下部に情報が追加されます。

うまくいけば、すべてが理にかなっています。さらに情報が必要な場合はお知らせください。

前もって感謝します。

4

2 に答える 2

0

次のコードから始めます。

Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
  Set Items = GetItems(GetNS(GetOutlookApp), olFolderInbox)
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



  End If
ProgramExit:
  Exit Sub
ErrorHandler:
  MsgBox Err.Number & " - " & Err.Description
  Resume ProgramExit
End Sub
Function GetItems(olNS As Outlook.NameSpace, folder As OlDefaultFolders) As Outlook.Items
  Set GetItems = olNS.GetDefaultFolder(folder).Items
End Function
Function GetNS(ByRef app As Outlook.Application) As Outlook.NameSpace
  Set GetNS = app.GetNamespace("MAPI")
End Function
Function GetOutlookApp() As Outlook.Application
  Set GetOutlookApp = Outlook.Application
End Function

これにより、デフォルトの受信トレイにイベント リスナーが設定されます。If TypeName電子メール メッセージが受信されるたびに、ステートメント内のコードが実行されます。あとは、どのコードを実行するかだけです。

.SenderNameまたはプロパティを使用して送信者をチェックし.SenderEmailAddress、正しい送信者であることを確認できます。

より具体的な情報を提供していただければ、コードを修正できます。

于 2013-10-25T18:21:04.680 に答える