2015-01-23 2 views
-1

Пожалуйста, сообщите мне по частям этого или всего этого, если это возможно. У меня в основном есть электронное письмо каждое утро с 5-8 ссылками на отчеты (на Sharepoint) и нужно щелкнуть каждый, который затем открывает документ Excel с отчетом, нажмите «Обновить все», затем сохраните, вернитесь в Outlook и нажмите следующую ссылку , Есть ли способ открыть первую ссылку в Outlook, перейти в excel обновить все, сохранить, а затем вернуться в Outlook и открыть следующую ссылку и повторить, пока все ссылки не будут нажаты в VBA? Любая помощь очень признательна, спасибо.VBA, чтобы открыть первую ссылку в электронном письме Outlook, а затем следующую ссылку

Function GetCurrentItem() As Object 
Dim objApp As Outlook.Application 

Set objApp = Application 
On Error Resume Next 
Select Case TypeName(objApp.ActiveWindow) 
    Case "Explorer" 
     Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1) 
    Case "Inspector" 
     Set GetCurrentItem = objApp.ActiveInspector.CurrentItem 
End Select 

Set objApp = Nothing 
End Function 

Sub Hyperlink(itm As MailItem) 
Dim bodyString As String 
Dim bodyStringSplitLine 
Dim bodyStringSplitWord 
Dim splitLine 
Dim splitWord 

bodyString = itm.Body 
bodyStringSplitLine = Split(bodyString, vbCrLf) 

For Each splitLine In bodyStringSplitLine 
    bodyStringSplitWord = Split(splitLine, " ") 

    For Each splitWord In bodyStringSplitWord 
     splitWord.Hyperlink.Select 
    Next 
Next 
Set itm = Nothing 
End Sub 

Sub test() 
Dim currItem As MailItem 
Set currItem = GetCurrentItem 
Hyperlink currItem 
End Sub 

Это то, к чему я придумал. Определенно содержит ошибки. Я просто запускаю sub test() в конце.

ответ

0

В Word есть .Follow.

Sub Hyperlink(itm As mailitem) 

Dim oDoc As Object 
Dim h As Hyperlink 

If itm.GetInspector.EditorType = olEditorWord Then 

    Set oDoc = itm.GetInspector.WordEditor 

    For Each h In oDoc.Hyperlinks 
     Debug.Print h.Name 
     If Right(h.Name, 5) = ".xlsx" Then 
      h.Follow 
     End If 
    Next 

End If 

Set oDoc = Nothing 

End Sub 
0

Вы можете обработать событие класса NewMailEx класса Application для обработки всех входящих сообщений электронной почты. Затем в обработчике событий вы можете проанализировать значение свойства HTMLBody и извлечь ссылки. Затем вы можете делать все, что вам нужно, с помощью ссылок - открыть их в браузере и т. Д.

Я рекомендую начать с статьи Getting Started with VBA in Outlook 2010 в MSDN. Затем вы можете найти много статей HOWTO в разделе Concepts (Outlook 2013 developer reference).

+0

У меня есть базовое понимание, но какова команда или тип объекта для выбора и прокрутки ссылок? – Srboarder91

0

Ваша проблема слишком велика и хотя и не слишком сложна, она включает в себя несколько ссылок на библиотеки объектов (регулярные выражения, Internet Explorer, Excel). Маловероятно, что вы получите полное решение своей проблемы. VBA - действительно мощный и классный язык сценариев и не слишком сложный для изучения. Я настоятельно рекомендую вам разделить проблему на более мелкие задачи и попытаться выполнить каждую задачу отдельно и вернуться к более конкретным вопросам.

Смежные вопросы