В сценариях VBA я пытаюсь написать вспомогательную функцию со следующей подписью
Sub(taskName As String , myGroup As String, myFile As String ,myPer As String, RelatedTasks() As String )
Dim olApp As Outlook.Application
Dim m As Outlook.MailItem
Set olApp = New Outlook.Application
Set m = olApp.CreateItem(olMailItem)
With m
.display
.To = "somewhere@someplace.com"
.Subject = "Test Events"
.HTMLBody/.body = ...
End Sub
Тело электронной почты выглядит следующим образом:
Hello All,
Пожалуйста, найдите следующую информацию.
ЗАДАЧА : имя задачи
ЗАДАЧА, СВЯЗАННАЯ : RelatedTasks ()
FILE : myFile
PERSON : myPer
В функции Sub шаблон слева от двоеточия всегда постоянен. И правая сторона будет меняться в зависимости отвходные данные для функции.
Для этого я читаю Template.htm, который содержит необходимую подпись.
Template.htm содержит:
Hello All,
Please find the following information.
TASK: {{mytask}}
RELATED TASK:{{myRelatedTasks}}
FILE : {{myFile}}
PERSON : {{myPerson}}
В коде VBA,Я заменяю все поля.
Проблема, с которой я сталкиваюсь, это {{mytask}}, и {{связанные задачи}} также должны иметь ссылку на HTML.Мне удалось добавить ссылку на mytask. Нажатие на mytask в почте приведет к переходу на соответствующую веб-ссылку.
<a href = "www.something.com&id ={{taskID}}>
{{mytask}}.....<a href = "www.xxx.com&id={{}}>{{myRelatedTasks}}
, но возникли проблемы при добавлении того же в связанные задачи, поскольку это массив.
Мой код VBA:
Option Explicit
Sub CreateNewMail()
Dim olApp As Outlook.Application
Dim m As Outlook.MailItem
Dim sigPath As String, sigText As String
Dim fso As Scripting.FileSystemObject
Dim ts As Scripting.TextStream
Dim t As String
Dim r(5) As Variant
t = "233444:dshfjhdjfdhjfhjdhfjdhfjd"
r(0) = "122343:dsjdhfjhfjdh"
r(1) = "323243:jfjfghfjhjddj"
r(2) = "834783:gffghjkjkgjkj"
Set olApp = New Outlook.Application
Set m = olApp.CreateItem(olMailItem)
sigPath = "C:\Users\Pavan-Kumar\Desktop\vbs\TestEvents.htm"
Set fso = New Scripting.FileSystemObject
Set ts = fso.OpenTextFile(sigPath)
sigText = ts.ReadAll
ts.Close
Set fso = Nothing
sigText = Replace(sigText, "{{mytask}}", t)
sigText = Replace(sigText, "{{myRelatedTasks}}", Join(r, "<br>"))
With m
.display
.To = "somewhere@someplace.com"
.Subject = "Test Events"
.HTMLBody = sigText
End With
End Sub
А также, когда я присоединяюсь к связанным задачам, я хочу, чтобы они шли один за другим с отступом.Я попытался сделать это, указав "\ t" в качестве разделителя, но безуспешно.
Мой текущий O / P в Outlook Outlook: