Hi All,
I have the below macro code which automatically sends the meeting requests from excel using outlook it works fine but I need to put some data as well on the meeting requests body when I am sending the meeting requests. my code copies the data as well on my meeting requests body but if my worksheet has a datatable with formatting then it just pastes the data with out any formatting. I am using dataobject method to copy the data to meeting body from excel sheet. I am using outlook 2003 so I can't use HTML method as Outlook 2003 doesn't support HTML for meeting requests. Below is my code :
I have attached my macro file as well. Please have a look.![]()
Sub Sendmeetingrequests () ' adds a list of appontments to the Calendar in Outlook Dim olApp As Outlook.Application Dim olAppItem As Outlook.appointmentItem Dim r As Long Dim myPath As String Application.ScreenUpdating = False myPath = ActiveWorkbook.Path DeleteTestAppointments ' deletes previous test appointments On Error Resume Next Set olApp = GetObject("", "Outlook.Application") On Error GoTo 0 If olApp Is Nothing Then On Error Resume Next Set olApp = CreateObject("Outlook.Application") On Error GoTo 0 If olApp Is Nothing Then MsgBox "Outlook is not available!" Exit Sub End If End If r = 10 ' first row with appointment data in the active worksheet While Len(Cells(r, 1).Formula) > 0 Set olAppItem = olApp.CreateItem(olAppointmentItem) ' creates a new appointment With olAppItem ' set default appointment values .Start = Now .End = Now .Subject = "No subject" .Location = "" .Body = "" .ReminderSet = True .MeetingStatus = olMeeting ' read appointment values from the worksheet On Error Resume Next .Start = Cells(r, 1).Value + Cells(r, 2).Value .End = Cells(r, 1).Value + Cells(r, 3).Value .Subject = Cells(r, 4).Value .Location = Cells(r, 5).Value .ReminderSet = Cells(r, 8).Value .Importance = Right(Cells(r, 9).Value, 1) .RequiredAttendees = Cells(r, 10).Value .Categories = "TestAppointment" ' add this to be able to delete the testappointments On Error GoTo 0 .Save ' saves the new appointment to the default folder End With With olApp Dim Xl As Excel.Application Dim Ws As Excel.Worksheet Dim xlRn As Excel.Range Set Xl = GetObject(, "Excel.Application") Set Ws = Xl.Workbooks.Parent.Worksheets(Cells(r, 1).Offset(0, 5).Value) Set xlRn = Ws.Range("MailBodyText") Dim varBody As String Dim objdata As DataObject Dim DataObject As Object Set objdata = New DataObject Application.GoTo Reference:=xlRn Selection.Copy objdata.GetFromClipboard varBody = objdata.GetText With olAppItem .Body = varBody '& vbCrLf & vbCrLf End With End With olAppItem.Close olSave r = r + 1 Sheets("scheduleapp").Activate Wend Set olAppItem = Nothing Set olApp = Nothing Application.ScreenUpdating = True End Sub
Thanks a lot for your help in advance.![]()











LinkBack URL
About LinkBacks
Register To Reply
Bookmarks