2017-09-28 27 views
0

VBAコードに関しては、私はnoobです。アイデアは、特定の件名の電子メールをスキャンし、電子メールの最初の行から電子メールアドレスを抽出し、最初の行から抽出した電子メールアドレスに返信することです。文字列から電子メールアドレスを抽出する:無効なプロシージャコールまたは引数

問題は無効なプロシージャコールまたは引数であることを伝えているemailC行にあります。

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String) 

    Dim mymail As Outlook.MailItem 
    Dim ns As Outlook.NameSpace 
    Set ns = Application.GetNamespace("MAPI") 
    Set mymail = ns.GetItemFromID(EntryIDCollection) 

    Substr = Trim(mymail.Subject) 
    If InStr(1, Substr, "TEST SUBJECT") > 0 Then 

     sText = mymail.Body 

     vText = Split(sText, Chr(13), -1, vbTextCompare) 
     'Find the next empty line of the worksheet 
     emailC = Trim(Left(sText, InStr(sText, "<") - 1)) 'Split(vText(0), " ", -1, vbTextCompare) 
     Resultstr = Trim(Mid(sText, InStr(sText, ">") + 1)) 
     senderstr = mymail.SenderEmailAddress 

     Call SendReply(emailC, mymail.Subject, Resultstr, senderstr) 

    End If 

End Sub 

Private Sub SendReply(Tostr, Subjectstr, Bodystr, senderstr) 
    Dim mymail2 As Outlook.MailItem 
    Set mymail2 = Application.CreateItem(olMailItem) 

    nam = mymail2.Session.CurrentUser.Name 

    With mymail2 
     .To = senderstr 
     .Subject = "RE: " & Subjectstr 
     .ReplyRecipients.Add emailC 
     .Body = Replace(Bodystr, Tostr, "", 1, -1, vbTextCompare) 

    End With 

    mymail2.Send 

End Sub 

答えて

0

ほとんどの場合、メール本体には「<」または「>」は含まれていません。その場合には、Instr0を返します、そしてあなたはexaclyあなたがスターターについて

を説明するエラーがスローされますコマンド left(sText, -1)で終わる、あなたは確認する必要があり、その後、あなたのコード

dim p as integer 
p = InStr(sText, "<") 
if p = 0 then 
    debug.Print "no '<' found, text = :" & sText 
else 
    emailC = Trim(Left(sText, p - 1)) 
    .... 

を変更あなたの心まで何そのような場合(そして、あなたが「<」を見つける場合にも必要がありますがありません「>」)

0

に行うには、おそらく<>&lt;ととして表さsTextであります。

0

変数がすべて文字列であっても、すべての変数を宣言するのが一般的には良い方法です。

使用しているすべてのStringでこれを行います。次のように私はまた、あなたのSendReplyルーチンを変更します

プライベートサブSendReply(文字列としてByVal括り、文字列としてByVal Subjectstr、文字列としてByVal Bodystrを、BYVAL senderstr文字列など)のメモリから

、あなたが行う場合ではありません上記のコードを実行すると、変数はどのデータ型であるべきかわかりません。

関連する問題