2012-01-11 31 views
0

我需要的是..我正在接收來自客戶(不同客戶)的繼續郵件以更新他們在數據庫中的資產詳細信息。 。一旦過程完成..我必須從他們的郵件中回覆(包括cc),告訴「資產詳細信息成功存儲在數據庫中」(正在使用模板)...建議我如何使用VBA做到這一點..?如何發送一個相同的回覆郵件(保存在Outlook中的模板)到郵件發件人(收件人,cc)

Explicit選項

公用Sub ReplyToAll()

昏暗oExp作爲Outlook.Explorer

「用於前景所選郵件

昏暗OSM作爲的MailItem

昏暗ONM作爲mailItem

On Error GoTo Err 

Set oExp = Outlook.Application.ActiveExplorer 

'Check if something is selected 
If oExp.Selection.Count > 0 Then 

    'Get the first item selected 

    Set oSM = ActiveExplorer.Selection.Item(1) 

     'Create a Reply template 

     Set oNM = oSM.ReplyAll 

     With oNM 

      'Change the subject 
      .Subject = "RE: " & oSM.Subject 

      'Change the body 
      .Body = .Body & Chr(13) & Chr(13) 

     'Display the new mail before sending it 
      .Display 

     End With 

End If 

Exit Sub 

錯誤:

MsgBox Err.Description, vbCritical 

結束子

.......................

部3

Sub ReplyAll() Dim objOutlookObject As mailItem

For Each objOutlookObject In GetCurrentOutlookItems

With objOutlookObject 
.ReplyAll.Display 

「的概率區碼不包括保存在位置c中的模板..throws一些錯誤

.createitemtemplate("c:\car.jtm") 

結束隨着 接着 結束子

功能GetCurrentOutlookItems()爲集合 Dim objApp As Outlook.Application Dim objItem As Object Dim colItems As New Collection

Set objApp = CreateObject("Outlook.Application") 
On Error Resume Next 
Select Case TypeName(objApp.ActiveWindow) 
    Case "Explorer" 
     For Each objItem In objApp.ActiveExplorer.Selection 
      colItems.Add objItem 
     Next 
    Case "Inspector" 
     colItems.Add objApp.ActiveInspector.CurrentItem 
    Case Else 
     ' anything else will result in an error, which is 
     ' why we have the error handler above 
End Select 

Set objApp = Nothing 
Set GetCurrentOutlookItems = colItems 

端功能

..........

+1

查看上個月的「outlook-vba」問題。幾個解釋您的問題的不同方面:如何訪問郵件項目,如何提取詳細信息以及如何自動答覆。你沒有告訴我們關於你的數據庫的事情,所以沒有人可以幫助你。根據最近的答案構建一個宏,如果宏不起作用,則返回一個特定的問題。 – 2012-01-11 14:29:36

+0

我搜索我可以找到相關的東西..你可以建議任何帖子..如何發送原始郵件的回覆,這樣我可以開發我的宏.. – 2012-01-12 07:49:31

+0

同意託尼。你需要問_specific_問題,並顯示你已經嘗試過。 – JimmyPena 2012-01-13 01:32:08

回答

1

對不起我的意見是如此生硬; 500個字符並沒有留下足夠的空間來獲得完整的答案。

您的問題很不清楚,所以很可能會被關閉。當然,我不明白任何人都可以回答。這就是爲什麼重要的是你試圖解決你自己的問題,並根據需要回答具體問題。

下面我提供了我認爲可以幫助您開始使用的最新帖子的鏈接。正如我在評論中所說的那樣,仔細閱讀最近的帖子。使用搜索功能。如果你尋找他們,這裏有一些非常好的答案。

前兩篇文章是我寫的教程。早期的步驟是相同的​​,但由於問題不盡相同,後面的步驟是不同的。看看兩者並選出與你相關的位。其他帖子都包含您可能會覺得有幫助的信息。

How to import the outlook mail data to excel

update excel sheet based on outlook mail

could anyone guide me in creating an outlook macro that does the following

send an email from excel 2007 vba using an outlook template set variables

using visual basic to access subfolder in inbox

vba outlook event moving email

從提問

除了一些小的調整應對新的信息

新節,在你的問題的代碼是從Microsoft幫助文件採取NewMailEx Event。如果你有正確的安裝類型這段代碼只會工作,如果你把它放在正確的位置:

  • NewMailEx事件將僅針對在Microsoft Outlook郵箱,對於收到的消息提供通知例如Microsoft Exchange Server,此外,只有在Outlook運行時,該事件纔會觸發,換句話說,當Outlook未打開時,不會觸發在收件箱中收到的新項目。在Exchange服務器電子郵件帳戶上運行Outlook的客戶的項目需要在服務器上實現其代碼。但是,對於在Exchange服務器上運行Outlook的客戶,項目需要在服務器上實現其代碼。事件將在所有設置中觸發緩存Exchange模式:下載整個項目,下載頭文件下載頭文件然後整個項目

你有正確的安裝類型?你可以把你的代碼在服務器上?即使這是您的宏的最終版本正確的做法,我不認爲這是正確的做法。在你學習VBA和Outlook

你需要兩樣東西:

  1. 你想編寫宏的詳細規範和
  2. 更多的理解VBA和Outlook的

我懷疑你可以創建詳細的規範,因爲你對VBA和Outlook不夠了解。但我們可以列出您需要知道的東西:

  • 如何從Outlook向數據庫寫入數據?
  • 如何識別您想要記錄的郵件項目?在你的例子中,你正在檢查一個「你好」的主題並回答「你好」。對於第一個實驗來說這很好,但你需要確定真正的方法。它是一個新的發件人嗎?信息正文中是否有具體信息?人類是否需要識別這些郵件?
  • 在您的示例中,「收件箱」下有一個「Personal」文件夾。許多人似乎都有這種類型的文件夾結構,Microsoft示例傾向於使用這樣的文件夾。我不。我有一個名爲「!Home」的文件夾。在此我有「保險」,「購物」,「錢」的文件夾。在這些我有我的不同供應商的文件夾。一旦我處理了一條消息,我將它移動到適當的文件夾。回覆將轉到相同的文件夾。這是我的系統,適用於我。你的系統將會是什麼?例如,是否會爲所有客戶或每個客戶提供一個文件夾?

以上是您的規範問題的入門者列表,但它也是您需要知道的事情的入門者列表。

也許你有誰希望你不要再浪費時間,並開始編寫宏老闆,但你不知道,還不足以計劃中的最後宏。

開始與我的教程。前三個步驟是關於文件夾結構。如果您擁有我擁有的複雜文件夾結構,則這些步驟至關重要。接下來,我會瀏覽一個顯示每個郵件項目中所選信息的文件夾。我有寫郵件正文到光盤的步驟。我建議你通過這兩個教程並嘗試我的代碼。並非所有這些都會立即有用,但它是所有良好的背景信息。

什麼是您的數據庫?它是Access還是Excel?在我的教程和上面的其他鏈接中有一些幫助可以寫入Excel,您可以使用它來適應Access。

我覺得上面是夠了。慢慢來,它會開始有意義。我還記得我第一次嘗試寫一個Outlook宏,所以我理解你的困惑。我保證它會變得清晰。祝你好運。

響應以下注釋新節:

  • 「你好,我已經試過..Got我想要什麼....刪除我以前試過code..and更換新代碼..現在,從你需要一點幫助....有沒有辦法使用像當我們點擊Outlook中的全部答覆按鈕相同的格式..我的代碼工作正常..prob是郵件的格式是不同的。」

問題1

.Body = .Body & Chr(13) & Chr(13) 

您正在使用文本正文。我認爲你想要HTML體。嘗試:

.HTMLBody = .HTMLBody & Chr(13) & Chr(13) 

問題2

您不能添加到HTML的身體這個樣子。 HTML正文爲:

<!doctype ...><html><head> ... </head><body> ... </body></html> 

您必須將文本添加到正文的開頭;就是在<body>之後。如果您只是添加文字,您將接受發件人使用的任何樣式,邊距和顏色。以下代碼添加了一些在我嘗試過的每封電子郵件中看起來相同的文本。我的文本是在一個單格內的表格中。該表涵蓋了頁面的整個寬度。文本在白色背景上是藍色的。

Dim InsertStg As String 
Dim Inx As Long 
Dim Pos As Long 

    'Change the body step 1: Create the string to be inserted 
    InsertStg = "<table border=0 width=""100%"" style=""Color: #0000FF""" & _ 
       " bgColor=#FFFFFF><tr><td><p>" 
    For Inx = 1 To 10 
     InsertStg = InsertStg & "Sentence " & Inx & " of first paragraph. " 
    Next 
    InsertStg = InsertStg & "</p><p>" 
    For Inx = 1 To 10 
     InsertStg = InsertStg & "Sentence " & Inx & " of second paragraph. " 
    Next 

    ' The following adds a signature at the bottom of the message. 
    ' "font-family" gives a list of fonts to be tried. If these are 
    ' missing from your computer, use the names of fonts you do have. 
    ' "serif" means that if none of the fonts exist any serif font 
    ' that exists is to be used. 
    InsertStg = InsertStg & "</p><p style = ""font-family: Mistral, " & _ 
       "Vivaldi, serif; font-size: 14px; color: " & _ 
       "rgb(127,0,127)"">John Smith<br>5 Acacia Avenue<br>" 

    InsertStg = InsertStg & "</p></td></tr></table>" 
    'Change the body step 2: Find insertion position just after <Body> element 
    Pos = InStr(1, LCase(.HTMLBody), "<body") 
    If Pos = 0 Then 
     Call MsgBox("<Body> element not found in HTML body", vbCritical) 
     Exit Sub 
    End If 
    Pos = InStr(Pos, .HTMLBody, ">") 
    If Pos = 0 Then 
     Call MsgBox("Terminating > for <Body> element not found in HTML body", vbCritical) 
     Exit Sub 
    End If 
    'Change the body step 3: Insert my text into body 
    .HTMLBody = Mid(.HTMLBody, 1, Pos) & InsertStg & Mid(.HTMLBody, Pos + 1) 
+0

真的不介意...上面我寫了我試過的代碼.. – 2012-01-13 07:24:32

+0

@Sathish Kothandam。我希望下一部分我已經添加到我的原始答案是有幫助的。 – 2012-01-13 11:48:31

+0

夢幻般的..你真棒...我開始學習VBA的前景,因爲你建議我..謝謝我已添加第2節..告訴你什麼是我在做什麼,我需要正確..謝謝你的幫助...會來回到與VBA良好的知識..任何想法請在這篇文章.. – 2012-01-17 05:36:55

相關問題