Предварительно написанное тело 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 после гиперссылки. НТН

  • Как создать соединение / ссылку между Excel и электронной почтой Outlook?
  • Вставка нескольких диапазонов Excel в качестве изображения в том же электронном письме Outlook
  • Скопировать копию Excel по выбранному диапазону в Outlook
  • Миграция VBA с 32 до 64-разрядного офиса завершается с ошибкой «AccessibleObjectFromWindow» в oleacc
  • Ошибка «несоответствие типа аргумента» при попытке отправить электронное письмо от excel Userform
  • Excel-outlook VBA 2013 не работает в 2016 году Версия Outlook
  • Если вход в InputBox не равен значению в диапазоне, тогда отобразите msgbox и end sub
  • Добавить идентификатор для строки и обновить строки ответов с одинаковым идентификатором?
  • выберите, на какую учетную запись отправить адрес электронной почты Outlook?
  • получить информацию о менеджере из списка адресов Outlook vba
  • Экспортировать тело сообщения Outlook в Excel
  • Interesting Posts

    Как создать веб-сайт, который загружает / загружает данные из / в файлы базы данных и Excel

    Как создать сложный зависимый выпадающий список с помощью VBA в Excel 2016?

    vba loop excel offset

    Экспорт данных обратно в существующий файл csv

    Pandas: Как читать файл excel, определяющий несколько столбцов, чтобы быть несколькими индексами?

    Точечное значение, применяемое к выбору из уравнения ПЧ

    Определите минимальную дату в поле excel, используя формулу

    NullPointer экспортирует .XLSX с JXLS

    excel – Поиск и замена нескольких текстов из значений ячеек

    Добавление значения ячейки с фиксированным текстом И значением другой ячейки

    Я пытаюсь найти формулу, которая позволит мне вычислить MAX / MIN без вычисления чего-либо после текущей строки

    Очистить код в Excel?

    EXCEL VBA Как я могу изменить IF (цикл) для чего-то еще?

    Контекстное меню и сочетание клавиш возвращают разные результаты по тому же методу

    Запуск кода VBA на нескольких листах в книге

    Давайте будем гением компьютера.