2015-04-22 1 views
0

Я пытался создать подраздел, который будет получать некоторую информацию из Excel и создать новую задачу в Outlook. Тело задачи должно содержать комментарий из первой ячейки (который он уже делает), но прежде всего я хочу вставить диапазон, как он выглядит в Excel, затем комментарий, а затем снова диапазон.Вставить форматированный диапазон Excel в задачу Outlook

http://i.imgur.com/WW77xgs.jpg

Вот мой код:

Sub CreateReminder() 

Dim olApp As Object 
Dim olRem As Object 
Dim myRange As Range 
Dim contact As String 
Dim company As String 
Dim city As String 
Dim state As String 
Dim cmt As comment 
Dim comment As String 
Dim strdate As Date 
Dim remdate As Date 

Set olApp = CreateObject("Outlook.Application") 
Set olRem = olApp.CreateItem(3) 

Set myRange = Selection 


If ActiveCell.comment Is Nothing Then 
    Exit Sub 
Else 
    Set cmt = ActiveCell.comment 
End If 
company = myRange.Columns(1).Text 
contact = myRange.Columns(2).Text 
If InStr(contact, "/") <> 0 Then 
contact = Left(contact, InStr(contact, "/") - 1) 
End If 
city = myRange.Columns(7).Text 
state = myRange.Columns(8).Text 
myRange.Copy 
comment = cmt.Text 
strdate = Date 
remdate = Format(Now) 

rangeaddress = myRange.Address 
wrksheetname = ActiveSheet.Name 

With olRem 

.Subject = "Call " & contact & " - " & company & " - " & city & ", " & state 
.display 
SendKeys "{TAB 9}" 
SendKeys "^{v}" 
.body = Chr(10) & comment & Chr(10) 
'.startdate = strdate 
'.remindertime = remdate 
'.reminderset = True 
'.showcategoriesdialog 
End With 

Set olApp = Nothing 
Set olRem = Nothing 

End Sub 

Как вы можете видеть, я могу вставить, используя метод SendKeys, но это своего рода хак, а не ... изощренными. Я уверен, что есть другой способ сделать это, любые идеи?

Я нашел код для вставки в качестве HTML для электронной почты, но, как я понимаю, элемент Mail позволяет использовать HTML, но не элемент «Задача».

ответ

0

Outlook использует Word в качестве редактора электронной почты. Вы можете использовать объектную модель Word для создания манипуляций в теле сообщения. Свойство WordEditor класса Inspector возвращает экземпляр класса Document (из объектной модели Word), который представляет тело. Вы можете узнать больше об этом и всех возможных путях в Chapter 17: Working with Item Bodies.

Таким образом, вы можете использовать метод класса Copy класса Range для копирования диапазона в буфер обмена. Затем вы можете использовать метод Paste из объектной модели Word, чтобы вставить данные в документ, который представляет тело сообщения.

+0

Спасибо за ответ. К сожалению, после прочтения и попытки я не смог заставить его работать. Наверное, у меня недостаточно знаний. Спасибо за информацию. –

+0

Отметить это как решение, потому что после нескольких месяцев это решение. Большое спасибо. –

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

  • Нет связанных вопросов^_^