Note: The other languages of the website are Google-translated. Back to English

Как применить кнопку для отправки электронного письма с прикрепленным текущим файлом Word? 

Если вам нужно отправить сообщение электронной почты из документа Word через Outlook, а также прикрепить текущий файл Word, вы можете создать командную кнопку, а затем отправить сообщение, нажав эту кнопку, не открывая Outlook. В этой статье я расскажу, как быстро и легко с этим справиться.

Применить кнопку для отправки электронного письма с прикрепленным текущим файлом Word


Применить кнопку для отправки электронного письма с прикрепленным текущим файлом Word

Для решения этой задачи в файле Word выполните следующие действия:

1. Сначала вы должны создать командную кнопку, пожалуйста, нажмите разработчик > Устаревшие инструменты > Командная кнопка (элемент управления ActiveX), см. снимок экрана:

кнопка doc для отправки электронного письма 1

2. Выберите кнопку и щелкните Свойства под разработчик в Свойства панели введите нужный текст подписи в Подпись поле, см. снимок экрана:

кнопка doc для отправки электронного письма 2

3. Затем закройте Свойства панель, теперь щелкните кнопку правой кнопкой мыши и выберите Просмотреть код, см. снимок экрана:

кнопка doc для отправки электронного письма 3

4. А затем в отображаемом Microsoft Visual Basic для приложений окна, скопируйте и вставьте приведенный ниже код между исходными сценариями, см. снимок экрана:

Dim xOutlookObj As Object
    Dim xEmail As Object
    Dim xDoc As Document
    Application.ScreenUpdating = False
    Set xOutlookObj = CreateObject("Outlook.Application")
    Set xEmail = xOutlookObj.CreateItem(olMailItem)
    Set xDoc = ActiveDocument
    xDoc.Save
    With xEmail
        .Subject = "Fax-data"
        .Body = "This is a test email."
        .To = "yy@addin99.com"
        .Importance = olImportanceNormal
        .Attachments.Add xDoc.FullName
        .Display
    End With
    Set xDoc = Nothing
    Set xEmail = Nothing
    Set xOutlookObj = Nothing
    Application.ScreenUpdating = True

кнопка doc для отправки электронного письма 4

Внимание: В приведенном выше коде вы должны изменить тему, основной текст или адрес отправления по своему усмотрению.

5. Затем сохраните и закройте этот код, нажмите Режим проектирования чтобы выключить режим дизайна. Теперь при нажатии созданной вами командной кнопки будет создано электронное письмо с текущим документом Word в качестве вложения, см. Снимок экрана:

кнопка doc для отправки электронного письма 5

6. Наконец, вам просто нужно нажать Отправить кнопку, чтобы отправить это сообщение.


Рекомендуемые инструменты для повышения производительности Word

 

Kutools For Word - Более 100 расширенных функций для Word, сэкономьте 50% времени

  • Сложные и повторяющиеся операции можно производить разово за секунды.
  • Вставляйте сразу несколько изображений из папок в документ Word.
  • Объединяйте и объединяйте несколько файлов Word из папок в одну в желаемом порядке.
  • Разделите текущий документ на отдельные документы в соответствии с заголовком, разрывом раздела или другими критериями.
  • Преобразование файлов между Doc и Docx, Docx и PDF, набор инструментов для общих преобразований и выбора и т. Д.
Сортировать комментарии по
Комментарии (29)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Я пытаюсь отправить электронное письмо с темой, являющейся содержимым одного из моих полей. Это возможно?
Этот комментарий был сведен к минимуму модератором на сайте
Hola, мне podrían apoyar пункт Que эль Archivo се convirta en PDF y se adjunte аль correo en ves del слово por пользу.
Большое спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, команда Extend Office,

Я считаю, что «xEmile» написан с ошибкой. Это должно быть «xEmail».

Пока код работает и проблем нет, следующий оператор ничего не сделает:

Установите xEmail = Ничего
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Абхи,
Спасибо за ваш комментарий, как вы сказали, «xEmile» написан с ошибкой, это должно быть «xEmail». Я обновил код.
Еще раз спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Можно ли сделать так, чтобы вы отправляли только одну страницу документа?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Дон,
Чтобы справиться с вашей задачей, примените приведенный ниже код, в коде вы должны изменить начальную и конечную страницы на свои:

Private Sub CommandButton1_Click ()

Dim xCurPageStart As Long, xCurPageEnd As Long, xCurPageRange As Range

Dim xCurPage как целое число, xPages как целое число

Dim xOutlookObj как объект

Dim xEmail как объект

Dim xDoc как документ, xNewDoc как документ

Dim xFilePath как строка

Dim xOldStart As Long, xOldEnd As Long

On Error Resume Next

Приложение.ScreenUpdating = False

Установите xOutlookObj = CreateObject("Outlook.Application")

Установите xEmail = xOutlookObj.CreateItem(olMailItem)

xFilePath = CreateObject("WScript.Shell").SpecialFolders(16)

Установите xDoc = ActiveDocument

xOldStart = xDoc.Приложение.Выбор.Начало

xOldEnd = xDoc.Приложение.Выбор.Конец

xDoc.Сохранить

xFilePath = xFilePath + "\attached file" + VBA.Mid(xDoc.FullName, VBA.InStrRev(xDoc.FullName, ".")) 'прикрепленный файл - это имя файла вложения, измените его по своему усмотрению

xCurPageStart = 2 'стартовая страница

xCurPageEnd = 2 'конечная страница

xPages = Selection.Information (wdNumberOfPagesInDocument)

xCurPageStart = Selection.GoTo(what:=wdGoToPage, Which:=wdGoToNext, Name:=xCurPageStart).Start

Если xCurPage = xPages Тогда

xCurPageEnd = ActiveDocument.Content.End

Еще

xCurPageEnd = Selection.GoTo(what:=wdGoToPage, Which:=wdGoToNext, Name:=xCurPageEnd + 1).Start

End If

Установите xCurPageRange = ActiveDocument.Range(xCurPageStart, xCurPageEnd)

xCurPageRange.Select

xCurPageRange.Copy

Установите xNewDoc = Application.Documents.Add(Visible:=False)

xNewDoc.Activate

xNewDoc.Content.PasteAndFormat

xNewDoc.SaveAs2 ИмяФайла:=xFilePath

xNewDoc.Close

xDoc.Range(xOldStart, xOldEnd).Выбрать

С xEmail

.Subject = "Факс-данные"

.Body = "Это тестовое письмо."

.To = "yy@addin99.com"

.Importance = olImportanceNormal

.Attachments.Добавить xFilePath

.Отображать

Конец с

VBA. Убить xFilePath

Установить xDoc = Ничего

Установите xEmail = Ничего

Установите xOutlookObj = Ничего

Application.ScreenUpdating = True

End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Я сделал заполняемую форму в MS Word. Я использовал устаревшие инструменты для расчета и т. д. Я также добавил кнопку отправки, которая работает для отправки формы по электронной почте. Проблема в том, что когда я снова открываю этот документ после сохранения, он не работает. Я даже пытался сохранить его как документ с поддержкой макросов, но бесполезно. Не могли бы вы помочь?
Спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Сначала у меня это работало, а потом по какой-то причине выдает ошибку 429 о том, что компонент ActiveX не может создать объект. я буквально просто скопировал и вставил. Раньше это работало, но я просто изменил размер шрифта, сделал кнопку больше и переименовал заголовок. я не думаю, что я случайно изменил некоторые другие настройки? есть идеи, что это может быть?
Этот комментарий был сведен к минимуму модератором на сайте
Привет! Я хотел бы, чтобы командная кнопка отправляла электронное письмо с документом Word в качестве тела электронного письма (мой документ Word представляет собой форму). Есть ли способ сделать это?
Этот комментарий был сведен к минимуму модератором на сайте
Я хочу, чтобы мой документ был отправлен в формате PDF, а не в виде документа Word.
Этот комментарий был сведен к минимуму модератором на сайте
Например, используя текст из текстового поля/текстового поля в документе Word и вставляя его как текст в строку темы вашего электронного письма?
Этот комментарий был сведен к минимуму модератором на сайте
Да, это тоже то, что мне нужно, может ли кто-нибудь помочь с этим запросом?
Этот комментарий был сведен к минимуму модератором на сайте
Это также работает для Lotus Notes?
Что я должен изменить в «xOutlookObj»?
Этот комментарий был сведен к минимуму модератором на сайте
Привет Продлить офис,
Можем ли мы установить другой адрес электронной почты, не связанный с Outlook? Нравится прямое электронное письмо на учетную запись GoDaddy?
Этот комментарий был сведен к минимуму модератором на сайте
Я пытаюсь узнать ту же информацию. Я использую gmail, и мне нужно создать форму для отправки на разные адреса электронной почты, которые могут автоматически отправляться обратно в мою учетную запись gmail.
Этот комментарий был сведен к минимуму модератором на сайте
Я создал документ, но теперь моя проблема заключается в том, что если я отправлю эту форму, скажем, 4 людям для заполнения, когда они откроют ее из вложения электронной почты, она откроется в режиме только для чтения, и когда они нажмут «Отправить», он попросит их сохранить, как раньше это позволит коду открыть письмо, адресованное мне. Есть ли способ обойти это, кроме как указать им местоположение файла?
Этот комментарий был сведен к минимуму модератором на сайте
Можете ли вы добавить Bcc к этому коду? Я попытался добавить скрытую копию и получил ошибку компиляции для ожидаемого выражения.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Хизер,

Вы можете добавить Bcc к этому коду. Например, вы можете добавить .Bcc="zmt@addin99.com" чуть ниже .To = "yy@addin99.com". Итак, код становится:

Dim xOutlookObj как объект
Dim xEmail как объект
Dim xDoc как документ
Приложение.ScreenUpdating = False
Установите xOutlookObj = CreateObject("Outlook.Application")
Установите xEmail = xOutlookObj.CreateItem(olMailItem)
Установите xDoc = ActiveDocument
xDoc.Сохранить
С xEmail
.Subject = "Факс-данные"
.Body = "Это тестовое письмо."
.To = "yy@addin99.com"
.Bcc = "zmt@addin99.com"
.Importance = olImportanceNormal
.Attachments.Add xDoc.FullName
.Отображать
Конец с
Установить xDoc = Ничего
Установите xEmail = Ничего
Установите xOutlookObj = Ничего
Application.ScreenUpdating = True

Пожалуйста, смотрите прикрепленное изображение. Хорошего дня.
С уважением,
Мэндиhttps://www.extendoffice.com/images/stories/comments/comment-zmt/Add_Bcc_to_code.png
Этот комментарий был сведен к минимуму модератором на сайте
Привет народ,

Я хочу применить кнопку, по которой я нажимаю и отправляю документ по электронной почте, а не как вложение, на один адрес электронной почты. Чтобы документ был текстом письма. Так же как и эффект кнопки "отправить получателю" на ленте.

Может ли кто-нибудь дать мне правильный код для этого?

Спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,
Возможно, код не может помочь отправить текущий текстовый документ в качестве тела электронной почты, если это сделать, изображение и форматирование файла в документе будут потеряны.
Если вы хотите отправить текущий документ как тело электронной почты, слияние может оказать вам услугу.
Вам нужно Mail Merge для отправки электронной почты?
Если вам нужно, пожалуйста, прокомментируйте здесь.
Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,

Спасибо за помощь!

Я бы попробовал с вашим предложением. Так что да, мне нужно Mail Merge для отправки электронной почты.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,

Спасибо за помощь!

Я бы попробовал с вашим предложением. Не могли бы вы дать мне код для слияния почты?

Благодаря!
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,
Чтобы отправить текущий документ Word в качестве тела письма, вы можете добавить Отправить получателю почты команда вашему ООК, пожалуйста, сделайте так:
1. Откройте файл Word, который хотите отправить, и нажмите Файл > Опции.
2. На левой панели выберите Панель быстрого доступа.
3. Выбрать Команды не на ленте из Выберите команды из.
4. Выбирайте и выбирайте Отправить получателю почты и нажмите кнопку Добавить>>.
5. Нажмите OK для закрытия диалога.
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-send-file-1.png

Теперь это Отправить получателю почты команда появится в Панель быстрого доступа в верхней части окна Word. Затем вы можете вставить относительную информацию в заголовок сообщения. После завершения информации, пожалуйста, нажмите Отправить копию, сообщение с текущим текстовым документом в качестве тела будет отправлено сразу.

https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-send-file-3.png

Пожалуйста, попробуйте это, надеюсь, это поможет вам!
Этот комментарий был сведен к минимуму модератором на сайте
Я обнаружил, что кнопка работает для открытия электронной почты, но при использовании mailmerge кнопка VBA по какой-то причине становится неактивной?
Как я могу гарантировать, что когда используется слияние, кнопка будет работать для пользователя, чтобы заполнить форму, а затем активировать кнопку, пожалуйста?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Майк,
Когда я использую функцию слияния, кнопка активна.
Не могли бы вы объяснить свою проблему более подробно?
Или вы можете загрузить свой файл сюда, чтобы мы могли проверить, в чем проблема.
Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Привет Скайанг,

Пожалуйста, смотрите пост, который я разместил ниже, к которому прилагается копия.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,
Пожалуйста, ознакомьтесь с документом, прикрепленным ниже.
Мне нужно обновить его для использования обновлений 2023 года, и при объединении кнопка, кажется, отключается, поскольку несколько участников сказали мне, что она не работает.

Благодаря,

Майк
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Майк,
Я проверил ваш файл на своем компьютере, он работает хорошо. Я использую Office 2019. См. приведенную ниже демонстрацию:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/send-doeument.gif
Этот комментарий был сведен к минимуму модератором на сайте
Привет Скайанг,

Я обнаружил, что это работает, когда у пользователя есть MS Word, но, кажется, электронные письма, такие как @hotmail; @gmail; и @live адреса электронной почты тех пользователей, у которых есть проблемы, когда кнопка не работает?
Похоже, это также не работает на смартфонах, если пользователь полагается на их использование, а не на компьютер.
Наконец, я получил ответ от другого пользователя, использующего Windows 11, где кнопка вообще не работает.

Что вы испытали с приведенными выше примерами, пожалуйста?

Благодаря,

Майк
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL