Предварительно написанное тело Excel в Outlook VBA

У меня постоянно меняется список инвентаря (часто делаются новые добавления), для которых я пытаюсь написать подраздел, который будет работать с Outlook, чтобы отправить предварительно написанный ответ электронной почты. Из информации, которую я нашел в Интернете (например, полезный опыт Рона де Бруина), кажется, что это должно быть возможно, но я застрял в попытке выяснить, можно ли выполнять код всякий раз, когда гиперссылка электронной почты нажата в пределах Столбец H.

Например, у меня есть имя человека в столбце A, начинающемся в строке 3, и их электронная почта в столбце H, начиная с строки 3, которая автоматически форматируется как гиперссылка, которая открывает новое пустое сообщение в Outlook. Я хотел посмотреть, можно ли применить макрос, который будет автоматически заполнять строку Subject и сообщение Body каждый раз, когда будет выбрана гиперссылка. Вот что я имею до сих пор:

Sub SendEmail() Dim olApplication As Outlook.Application Set olApp = CreateObject("Outlook.Application") Dim olMail As Outlook.MailItem Set olMail = olApp.CreateItem(olMailItem) olMail.To= olMail.Subject = "Subject Line" olMail.Body = "This is the body of the e-mail" olMail.Display End Sub 

То, что у меня до сих пор не работает, потому что я не уверен, что мне нужно ссылаться на поле «.To =» как диапазон (столбец H), или если мне нужно придерживаться условного оператора там, чтобы он выполнялся на основе того, выбрана гиперссылка.

Ответ на ваш вопрос – да.
Что вам нужно сделать, так это получить недавно открытый объект Inspector в Outlook.
Помните, что когда вы нажимаете на ссылку, она автоматически создаст MailItem.
Вам нужно завладеть вновь созданным объектом MailItem, чтобы вы могли манипулировать им.

Что-то вроде:

 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) On Error GoTo halt Application.EnableEvents = False Dim olApp As Outlook.Application Dim olMail As Outlook.MailItem Set olApp = GetObject(, "Outlook.Application") Do While olApp.Inspectors.Count = 0 DoEvents Loop Set olMail = olApp.Inspectors.Item(1).CurrentItem With olMail .Subject = "I was able to change the subject" .Body = "Dear " & Target.Range.Offset(0, -1).Value .Display End With forward: Application.EnableEvents = True Exit Sub halt: MsgBox Err.Description Resume forward End Sub 

Обратите внимание, что вам необходимо привязать Outlook к Excel , указав его правильно.
Также обратите внимание, что Outlook должен быть открытым, иначе вам нужно добавить обработчик.
Это просто указывает на то, как вы получите доступ к новому созданному mailitem после гиперссылки. НТН

  • Не удается получить доступ к объекту AddressEntries из объекта AddressList (Outlook VBA)
  • Папка Excel VBA в виде изображения в Outlook без записи содержимого тела в сообщении
  • Как вставить гиперссылку в тело электронной почты
  • отправка электронной почты от excel, которая прикрепляет строки из другого листа
  • Отправка писем с помощью Outlook 2013 / Excel 2013
  • Тип Несоответствие в Loop для сканирования сообщений Outlook
  • Выберите папку Outlook с Excel VBA
  • Как получить время завершения задачи в Outlook
  • Запуск макроса Excel из Outlook, запущенный на основе темы электронной почты
  • Адрес электронной почты с жестким кодом в Excel
  • Экспорт экспортного поля Outlook в Excel
  • Давайте будем гением компьютера.