Добавление таблицы в сообщение
Outlook для Microsoft 365 Outlook 2021 Outlook 2019 Outlook 2016 Outlook 2013 Outlook 2010 Еще…Меньше
Если вы когда-нибудь пытались вручную выровно строки и столбцы текста пробелами, то знаете, насколько это может быть неприятно. Вкладки — это отличное начало, но таблицы по возможности включают привлекательные стили. Это еще более подробное Excel электронных таблиц, которые содержат формулы и вычисления.
-
Щелкните в том месте сообщения, куда вы хотите вставить таблицу.
-
На вкладке Вставить нажмите кнопку Таблица.
-
Выполните одно из указанных ниже действий.
-
Щелкните сетку таблицы, чтобы настроить количество строк и столбцов в новой пустой таблице.
-
Нажмите кнопку Вставить таблицу, чтобы добавить шаблон базовой таблицы.
-
Нажмите кнопку Нарисовать таблицу, чтобы получить указатель, позволяющий рисовать таблицу, строки и столбцы и изменять размер ячеек таблицы.
-
Щелкните Excel таблицу, чтобы добавить в сообщение таблицу. Это как мини-версия Excel в сообщении, которую можно использовать для добавления формул и выполнения вычислений. Измените размер с помощью точек обработки нижнего и правого краев.
-
Найдите пункт Быстрыетаблицы и щелкните таблицу. Замените содержимое таблицы собственным.
-
См. также
Преобразование текста в таблицу или таблицы в текст
Нужна дополнительная помощь?
Хитрости »
13 Апрель 2017 37188 просмотров
Про создание писем в Outlook через Visual Basic for Applications(VBA) Excel я уже писал пару статей, в том числе и о том, как вставить одну из стандартных подписей в письмо — Вставить в письмо подпись из Outlook через VBA(по умолчанию при создании писем из VBA подпись не вставляется, даже если это настроено параметрами почты). Но т.к. отправка происходит из Excel, то часто возникает и другой вопрос — как в письмо вставить не просто текст, а целую таблицу? Да еще со всем форматированием ячеек? Если речь о ручной вставке, то тут все просто: скопировали диапазон, перешли в письмо — вставили. Но если попробовать тоже самое кодом (через копировать-вставить) — ничего не получится(у Outlook просто нет метода Paste или что-то вроде того). Можно использовать метод SendKeys, но он весьма нестабилен и я стараюсь его вообще нигде не применять, только в случаях, когда по-другому ну вообще никак:
Sub Send_Mail() Dim objOutlookApp As Object, objMail As Object Application.ScreenUpdating = False 'копируем выделенную таблицу Selection.Copy On Error Resume Next Set objOutlookApp = CreateObject("Outlook.Application") objOutlookApp.Session.Logon Set objMail = objOutlookApp.CreateItem(0) 'создаем новое сообщение If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub On Error GoTo 0 'создаем сообщение With objMail .To = "адрес получателя" .Subject = "Тема: тест вставки таблицы" .BodyFormat = 2 'olFormatHTML - формат HTML .Display 'отображаем сообщение 'передаем управление ОС, чтобы завершились все лишние процессы DoEvents 'посылаем команду нажатия клавиш Ctrl+V для вставки таблицы из буфера обмена Application.SendKeys "^v" End With Set objOutlookApp = Nothing: Set objMail = Nothing Application.ScreenUpdating = True End Sub
Чем мне не нравится этот метод? Как уже писал — он не очень стабилен и может получиться так, что вставите скопированное не туда или вставка вообще не произойдет.
Если же переносить таблицу кодом вроде такого:
.Body = Range(«A1»).Value & Range(«A2»).Value
то это будут только значения ячеек, но не их форматирование и уж никак не таблица.
Все дело в том, что таблица в теле письма это отдельный объект формата HTML. И при вставке через копировать-вставить руками Excel и Outlook делают за нас всю грязную работу по перекодировке скопированного в нужный формат HTML. А значит и нам надо каким-то образом конвертировать нужные ячейки в этот формат, да еще учесть всё форматирование. К примеру, есть такая таблица:
рис.1
Теперь эту таблицу надо вставить в письмо вместе с остальным текстом, чтобы было что-то вроде:
рис.2
Чтобы конвертировать нужные ячейки в самостоятельную таблицу в формате HTML я использую такую функцию:
Function ConvertRngToHTM(rng As Range) Dim fso As Object, ts As Object Dim sF As String, resHTM As String Dim wbTmp As Workbook sF = Environ("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm" 'переносим указанный диапазон в новую книгу rng.Copy Set wbTmp = Workbooks.Add(1) With wbTmp.Sheets(1) 'вставляем только ширину столбцов, значения и форматы .Cells(1).PasteSpecial xlPasteColumnWidths .Cells(1).PasteSpecial xlPasteValues .Cells(1).PasteSpecial xlPasteFormats .Cells(1).Select Application.CutCopyMode = False 'удаляем все объекты(фигуры, рисунки и пр.) '------------------------------------------ 'если рисунки и объекты нужны - удалить этот блок On Error Resume Next .DrawingObjects.Visible = True .DrawingObjects.Delete On Error GoTo 0 '------------------------------------------ End With 'сохраняем книгу как Веб-страницу(чтобы содержимое конвертировать в HTML-код) With wbTmp.PublishObjects.Add( _ SourceType:=xlSourceRange, Filename:=sF, _ Sheet:=wbTmp.Sheets(1).Name, Source:=wbTmp.Sheets(1).UsedRange.Address, _ HtmlType:=xlHtmlStatic) .Publish (True) End With 'открываем созданный файл как текстовый и считываем содержимое Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.GetFile(sF).OpenAsTextStream(1, -2) resHTM = ts.ReadAll ts.Close 'выравниваем таблицу по левому краю(если надо оставить по центру - удалить эту строку) ConvertRngToHTM = Replace(resHTM, "align=center x:publishsource=", "align=left x:publishsource=") 'закрываем временную книгу и удаляем wbTmp.Close False Kill sF 'очищаем объектные переменные Set ts = Nothing: Set fso = Nothing Set wbTmp = Nothing End Function
Все, что остается — это в нужный момент вызвать эту функцию и вставить в нужное место письма.
Например, для конвертации в текст HTML выделенного на листе диапазона необходимо выполнить код:
Dim sTblBody As String sTblBody = ConvertRngToHTM(Selection)
Чтобы создать письмо в Outlook и вставить туда эту таблицу можно использовать такой код:
Sub Send_Mail() Dim objOutlookApp As Object, objMail As Object Application.ScreenUpdating = False On Error Resume Next Set objOutlookApp = CreateObject("Outlook.Application") objOutlookApp.Session.Logon Set objMail = objOutlookApp.CreateItem(0) 'создаем новое сообщение If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub On Error GoTo 0 'создаем сообщение With objMail .To = "адрес получателя" .Subject = "Тема: тест вставки таблицы" .BodyFormat = 2 'olFormatHTML - формат HTML .HTMLBody = ConvertRngToHTM(Selection) .Display 'отображаем сообщение End With Set objOutlookApp = Nothing: Set objMail = Nothing Application.ScreenUpdating = True End Sub
Более подробно про создание и отправку писем из Excel я писал в этой статье: Как отправить письмо из Excel?
По сути основная задача выполнена, теперь вы сможете вкладывать в сообщение таблицу без потери форматирования.
Если задача поставлена так, что необходимо вставить таблицу не на основании выделенного диапазона(Selection), а на основании конкретного диапазона ячеек на листе(скажем диапазона A20:F27 на листе с именем Лист1), то это должно выглядеть так:
Dim sTblBody As String sTblBody = ConvertRngToHTM(Worksheets("Лист1").Range("A20:F27"))
Скачать файл:
Пример вставки таблицы в письмо Outlook.xls (67,5 KiB, 3 451 скачиваний)
В файле-примере, приложенном к статье, более расширенный вариант кода, который оформлен более удобно, там можно задать в ячейках адрес получателя, тему письма и текст письма. Плюс помимо описанного выше добавляет форматирование к письму, проставляет корректные переносы и непосредственно вставляет таблицу в любое место письма.
За форматирование(назначает шрифт Arial, размер 14) отвечает строка:
sBody = "<span style=""font-size: 14px; font-family: Arial"">" & sBody & "</span>"
Полагаю, несложно догадаться где изменить размер шрифта и его имя. Так же можно и иное форматирование применять, если Вам знакомы основы работы с HTML.
Корректные для HTML переносы строк текста
'Переносы строк и шрифт sBody = Replace(sBody, Chr(10), "<br />") sBody = Replace(sBody, vbNewLine, "<br />")
Про вставку таблицы следует расписать чуть подробнее. В примере в ячейку B13 записан следующий текст:
Уважаемый клиент!
Только для Вас мы подготовили специальное предложение по товарам, которыми Вы интересовались в нашем Интернет-магазине:
{TABLE}
Будем рады видеть Вас среди наших постоянных клиентов!
(а для постоянных клиентов у нас действуют еще более выгодные условия)
С уважением, Дмитрий
менеджер по работе с постоянными клиентами
красным специально выделен тег {TABLE}. Именно на место этого тега будет вставлена таблица, созданная из указанного диапазона и результат будет как на рис.2(см.выше). Эту метку можно вставлять в любое место и именно туда будет помещена таблица.
В коде диапазон вставляемой таблицы указывается в строке:
Set rDataR = .Range("A15:D18") 'Selection - если надо отправить только выделенные диапазона
Его можно изменить на любой необходимый.
Что важно помнить: если помимо вставки таблицы Вы планируете форматировать письмо другими тегами HTML, то лучше сначала сделать все форматирование и только в самом конце, самым последним шагом, добавлять таблицу в письмо. Иначе разметка таблицы может «поплыть».
Надеюсь теперь Вам не составит труда сделать свои сообщения более красивыми и аккуратными.
Понимаю, что многие захотят сделать из этого массовую рассылку. Для этого придется совместить код из этой статьи с кодом из статьи Как отправить письмо из Excel?. Там есть пример отправки писем через Outlook списку получателей.
Подумал, что неплохо было бы дополнить статью простенькой функцией, которая не сохраняет никаких файлов, форматированных таблиц и практически не делает лишних движений. Она просто в письмо вкладывает значения всех ячеек указанного диапазона простым текстом, без форматирования(разве что добавил переносы строки и табуляцию, чтобы соблюдался хоть какой-то табличный вид и текст не был одной единой строкой):
'--------------------------------------------------------------------------------------- ' Author : The_Prist(Щербаков Дмитрий) ' Профессиональная разработка приложений для MS Office любой сложности ' Проведение тренингов по MS Excel ' http://www.excel-vba.ru ' Purpose: функция объединяет значения указанного диапазона ячеек в строку ' разрывы между столбцами заменяются табуляцией ' разрывы между строками заменяются переносами на строки '--------------------------------------------------------------------------------------- Function RangeToTextTable(rng As Range) Dim lr As Long, lc As Long, arr Dim res As String arr = rng.Value If Not IsArray(arr) Then ReDim arr(1 To 1, 1 To 1) arr(1, 1) = rng.Value End If For lr = 1 To UBound(arr, 1) For lc = 1 To UBound(arr, 2) If lc = 1 Then res = res & arr(lr, lc) Else res = res & vbTab & arr(lr, lc) End If Next res = res & vbNewLine Next RangeToTextTable = res End Function
Вставляем значения ячеек при помощи этой функции в письмо:
'создаем сообщение With objMail .To = "адрес получателя" .Subject = "Тема: тест вставки таблицы" '.BodyFormat = 2 'уже не надо, т.к. форматирования нет .Body = RangeToTextTable(Selection) .Display 'отображаем сообщение End With
Здесь следует помнить, что «таблица» после такой вставки будет выглядеть не очень красиво. И речь не о цвете заголовков — при различной длине текста внутри ячеек текст в письме будет сдвигаться:
чтобы этого как-то избежать, можно чуть модифицировать функцию:
'--------------------------------------------------------------------------------------- ' Author : The_Prist(Щербаков Дмитрий) ' Профессиональная разработка приложений для MS Office любой сложности ' Проведение тренингов по MS Excel ' http://www.excel-vba.ru ' WebMoney - R298726502453; Яндекс.Деньги - 41001332272872 ' Purpose: функция объединяет значения указанного диапазона ячеек в строку ' разрывы между столбцами заменяются табуляцией ' разрывы между строками заменяются переносами на строки '--------------------------------------------------------------------------------------- Function RangeToTextTable(rng As Range) Dim lr As Long, lc As Long, arr Dim res As String, rh() Dim lSpaces As Long, s As String arr = rng.Value If Not IsArray(arr) Then ReDim arr(1 To 1, 1 To 1) arr(1, 1) = rng.Value End If ReDim rh(1 To UBound(arr, 2)) For lr = 1 To UBound(arr, 1) For lc = 1 To UBound(arr, 2) If Len(arr(lr, lc)) > rh(lc) Then rh(lc) = Len(arr(lr, lc)) End If Next Next For lr = 1 To UBound(arr, 1) For lc = 1 To UBound(arr, 2) s = arr(lr, lc) lSpaces = rh(lc) - Len(s) If lSpaces > 0 Then s = s & Space(lSpaces) End If If lc = 1 Then res = res & s Else res = res & vbTab & s End If Next res = res & vbNewLine Next RangeToTextTable = res End Function
и назначить шрифт для писем по умолчанию Courier New или любой другой мноноширный шрифт. Тогда можно получить примерно такой результат:
Если использовать не моноширный шрифт, то визуально таблица все равно будет неравной и смысла в модификации функции нет.
Так же см.:
Как отправить письмо из Excel?
Вставить в письмо подпись из Outlook через VBA
Сохранить вложения из Outlook в указанную папку
Как отправить письмо от другой учетной записи Outlook
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
If you want to insert or add a Table in Gmail and Outlook messages, here is how you can do that. It is quite straightforward since you can use Google Sheets or Excel Online to fetch the table from. Here is everything you need to know about inserting tables in Gmail and Outlook messages on the web and Mail for Windows 11/10.
Let’s assume that you want to send a list containing some product names and their prices. Adding a table is probably the most efficient way to get the job done. The problem begins when you try to add the table since Gmail doesn’t allow you to do that. On the other hand, Outlook for the web lets you insert the table, but it doesn’t have any option to customize it. That is why you need to check out this article to learn more about various methods to insert a table in your emails.
How to add a Table in Gmail and Outlook using Copy-Paste
Follow these steps to add a Table in Gmail and Outlook using Copy-Paste:
- Open Google Sheets on your browser.
- Create the table you want to insert in the email.
- Copy the entire table to your clipboard.
- Open Gmail or Outlook and compose a message.
- Press Ctrl+V to paste the table
To learn more about these steps, continue reading.
It is the most common method when you are using Gmail. You can create a table in any spreadsheet maker, such as Excel Online, Google Sheets, or Excel for desktop. For this example, we are about to show you the screenshots of Google Sheets and Gmail. However, you can do the same with any other spreadsheet maker and Outlook also.
To get started, open the official website of Google Sheets, docs.google.com, and create a black spreadsheet. Following that, create a table as per your requirements and copy the entire table to your clipboard.
Next, open Gmail and start composing an email. Select a position where you want to display the table and press Ctrl+V to paste the copied table.
Now you can see the table in your email.
There is a more efficient way to insert a table when you are using Outlook.com. The web version of Outlook allows you to insert a table using the in-built option it includes.
Disadvantage: Outlook lets you edit the table, change the column width, insert or remove rows/columns, etc. However, Gmail doesn’t have any such option.
To insert table in Outlook for web, follow these steps:
- Log in to your account on outlook.com.
- Click on the New message button to start composing an email.
- Click on the Insert table icon in the toolbar.
- Select the number of rows and columns.
Let’s check out these steps in detail.
To get started, log in to your user account on the Outlook.com website and click the New message button to start composing a new email.
Following that, find out the Insert table icon in the toolbar and click on it.
Now, you need to select the number of rows and columns of your table.
Following that, you can start entering the values in each cell as per your wish.
Disadvantage: You cannot edit the first row or heading of a table if you insert it using the in-built option in Outlook.
How to add or insert a Table in Mail on Windows 11/10
To add or insert table in Mail on Windows 11/10, follow these steps:
- Open the Mail app on your computer.
- Start composing a message.
- Switch to the Insert tab.
- Click on the Table option.
You need to open the Mail app on your computer and start composing a message to get started. When you open the panel to start writing an email, it shows a toolbar on the top. You need to switch to the Insert tab and click on the Table option.
By default, it adds a 3×3 table automatically. If you want to insert more columns or rows, click on the Insert button and choose the option accordingly.
The best thing about this option is that you can customize the table in the way you want. There is almost no limitation in editing the table in the Mail app if you use the in-built option. The second advantage is that you get the same options for Gmail accounts as well.
How do I insert a Table into the body of an email?
To insert a table into the body of an email, you have three options – use the Copy-Paste method, use the in-built Insert table option, and use the Mail app on Windows 11/10. The Copy-Paste method works when you have a dedicated spreadsheet maker.
How do I add Rows to a Table in Gmail?
You cannot add rows to a table in Gmail once it is inserted already. You need to change the table before pasting it in the email body.
How do I edit a Table in Gmail?
It is not possible to edit the header color, insert more rows/columns, etc. However, you can change the value of cells in a table in Gmail. For that, click on the text you want to edit, remove it, and add the new one.
This is how you can add or insert a table in Gmail and Outlook.
Read: How to insert a checkbox in Outlook email and Mail app.
Как сделать почтовую рассылку клиентам из таблицы Excel
Бывает нужно разослать большое количество писем списку контактов из таблицы в Excel.
Это может быть список потенциальных клиентов с мероприятия, выгрузка контактов из программы (1С, Битрикс24, amoCRM), просто список родственников, которые с нетерпением ждут от вас поздравления с праздником или уникального предложения.
Расскажу, как сделать это просто, быстро и бесплатно. Для решения задачи понадобится Excel, Word и Outlook из пакета Microsoft Office.
Итак, например, есть Excel таблица с данными клиентов (ФИО, компания, E-mail) и мы хотим отправить им персонализированное сообщение о предстоящих скидках.
Таблица Excel со списком клиентов
Колонка “Пол” потребуется для определения окончания “уважаемый” или “уважаемая”, ее я вычислил по формуле, если “Отчество” заканчивается на “ч” значит это мужчина, если нет — женщина:
В новом документе Word наберём шаблон текста сообщения, которое будем отправлять. Вместо обращения, имени и названия компании оставим пока пустые места.
Запустим Мастер Слияния: вкладка Рассылки (Mailings), Начать слияние (Start Mail Merge), далее Пошаговый мастер слияния (Step-by-Step Merge Wizard).
Запуск пошагового мастера слияния
Откроется мастер, состоящий из 6 этапов.
На перовом этапе выберем пункт Электронное сообщение (E-mail), так как хотим отправить наши сообщения по электронной почте.
Выбор типа документа
На втором этапе нужно указать, какой документ будет использоваться в качестве шаблона, выберем Текущий документ (Current document).
Выбор документа
Третий этап — выбор получателей. Так как список наших клиентов хранится в файле Excel, выбираем пункт Использование списка, жмем Обзор (Browse) и указываем наш файл.
Выбор получателей
Откроется окно Получатели слияния, в нем можно выбрать или отменить клиентов для которых делаем рассылку.
Выбор получателей рассылки
Четвертый этап — создание сообщения. Тут можно вставить данные из нашего файла Excel в шаблон сообщения, который мы подготовили.
Создание сообщения
Вставим Фамилию, Имя, Отчество и название компании в наш шаблон, для этого: установим курсор в текст сообщения куда хотим вставить значение поля Excel, нажмем Другие элементы, в открывшемся окне выберем поле, которое хотим вставить, и так для всех полей.
Вставка поля
Чтобы правильно указать обращение “уважаемый” для мужчин, и “уважаемая” для женщин создадим правило. Жмём кнопку Правила (Rules) на вкладке Рассылки (Mailings) и выберем пункт IF…THEN…ELSE.
Создание правила
В открывшемся окне укажем правило: если поле “Пол” равно “М” — вставить текст “уважаемый”, в противном случае — вставить текст “уважаемая”.
Настройка правила
В итоге, после вставки полей должен получиться шаблон похожий на мой (вставленные поля выделил красным цветом).
Готовый шаблон слияния
На пятом этапе можно предварительно просмотреть результаты слияния. Для перехода между письмами служат кнопки со стрелками.
Предварительный просмотр сообщений
На завершающем 6 этапе нужно выбрать единственный пункт Электронная почта.
Завершение слияния
Затем в открывшемся окне указать тему отправляемых писем и выбрать в поле Кому столбец нашей таблицы Excel, в котором содержаться адреса получателей
Запуск рассылки
После нажатия на кнопку ОК, Word автоматически подключится к вашему почтовому клиенту Outlook, поместит все сообщения в папку «Исходящие», после чего письма отправятся получателям.
Если вы хотите проверить письма перед отправкой, есть небольшая хитрость, нужно предварительно перевести Outlook в автономный режим Файл — Автономный режим. Письма останутся в исходящих, пока вы не выйдете из автономного режима и при необходимости вы сможете проверить или внести в них изменения.
На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.
Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.
Как из экселя перенести таблицу в письмо
Если вы когда-нибудь пытались вручную выровно строки и столбцы текста пробелами, то знаете, насколько это может быть неприятно. Вкладки — это отличное начало, но таблицы по возможности включают привлекательные стили. Это еще более подробное Excel электронных таблиц, которые содержат формулы и вычисления.
Щелкните в том месте сообщения, куда вы хотите вставить таблицу.
На вкладке Вставить нажмите кнопку Таблица.
Выполните одно из указанных ниже действий.
Щелкните сетку таблицы, чтобы настроить количество строк и столбцов в новой пустой таблице.
Нажмите кнопку Вставить таблицу, чтобы добавить шаблон базовой таблицы.
Нажмите кнопку Нарисовать таблицу, чтобы получить указатель, позволяющий рисовать таблицу, строки и столбцы и изменять размер ячеек таблицы.
Щелкните Excel таблицу, чтобы добавить в сообщение таблицу. Это как мини-версия Excel в сообщении, которую можно использовать для добавления формул и выполнения вычислений. Измените размер с помощью точек обработки нижнего и правого краев.
Найдите пункт Быстрыетаблицы и щелкните таблицу. Замените содержимое таблицы собственным.
Как из экселя перенести таблицу в письмо
Нужна помощь, VBA для копирования таблицы из почты Outlook с определенной темой, чтобы преуспеть в определенном месте
Я получаю письмо с темой «Состояние резервного копирования сегодня» с таблицей из 2 столбцов и 6 строк в папке «Входящие». Пытаюсь написать код, чтобы открыть почту, скопировать таблицу и вставить ее в excel в определенное место.
Проблема: код работает нормально, ошибок нет. Почта открывается, а также открывается файл excel. Но таблица не копируется. Пожалуйста, помогите в этом.
Вставить таблицу Excel в Outlook — это шаг, который нужно выполнить, если мы хотим обмениваться информацией через эту платформу, есть другие способы поделиться таблицей Excel для электронной почты в Outlook, мы вскоре объясним их, а также вставим в сообщение.
Если вы хотите добавить, вставить или вставить таблицу Excel прямо в сообщение электронной почты Outlook, здесь мы предоставим вам шаги. может сделать это без осложнений . Мы также научим вас другим способам совместного использования таблицы Excel через Outlook.
Когда мы работаем в электронной таблице Excel, мы обычно используем таблицы, информация, собранная в Таблицы Excel понимать простые в выполнении расчеты. Если мы хотим поделиться этой информацией, есть несколько способов сделать это.
Один из способов поделиться информацией в таблице — это добавить в электронную почту Outlook, и это оказывается самым простым способом поделиться ими. Однако, когда мы не знаем, как применить процесс добавления или вставки массива, все усложняется.
Что мы собираемся сделать, чтобы вставить таблицу Excel в Outlook, очень просто: первое, что нужно сделать, это ввести наш рабочий лист Excel; щелкнув левой кнопкой мыши вниз, мы выберут все квадраты, соответствующие таблице.
Затем мы щелкнем правой кнопкой мыши по этому выбору и выберем возможность скопировать ; на этом этапе вы должны перейти к электронной почте и открыть новое сообщение для создания.
Следующее, что нужно сделать, это щелкнуть правой кнопкой мыши сообщение Outlook, сначала указав адрес электронной почты получателя и тему, а затем нажмите на вставку . Таблица будет автоматически вставлена, и вы можете отправить ее, чтобы другой пользователь получил ее как сообщение.
Какие еще способы поделиться файлом Excel в Outlook?
Способ, который мы объясняли ранее, относится к простейшему механизму обмена информацией в Outlook, но есть и другие. способы отправить документ или таблицу Excel через эту платформу без необходимости вставлять таблицу Excel в Outlook.
Помня, что Outlook имеет связи с различными типами программного обеспечения Microsoft Office, мы можем сказать, что процесс совместное использование файла Excel через Outlook довольно просто.
Один из способов — отправить документ или таблицу Excel как вложение в Outlook , для чего требуется только файл заранее зарегистрирован на отправляющем устройстве. Существует также возможность отправки в формате PDF, когда он отправляется в виде файла, который нельзя редактировать из Outlook или другого почтового носителя.
А с другой стороны, есть возможность отправить как XPS по электронной почте – почта , способ, позволяющий сохранить дизайн, формат и изображения при отправке. Могут быть и другие способы отправки документа Excel через Outlook, но это метод по умолчанию, установленный Microsoft Office.
Что делать, если я не могу вставить таблицу Excel по электронной почте из Outlook?
Возможно, вы пытались вставить таблицу Excel в Outlook отправить его как обычное сообщение, и у вас это не сработало; и, возможно, позже вы попытались отправить его другими способами, которые мы здесь упомянули, и это тоже не сильно помогло.
Процесс вставка или добавление таблицы Excel в сообщении Outlook не работает в некоторых случаях, и содержащаяся в нем информация может не «перевариваться» форматом сообщения. Это также происходит с некоторыми изображениями, когда они вставлен в тело письма в Outlook.
Однако это не значит, что вы не можете этого сделать. Другой вариант вставки таблицы Excel в Outlook можно сделать с помощью ссылок между программами Microsoft Office.
Вы можете попробовать связать таблицу Excel с Word , или вы также можете сделать это с помощью другой носитель, такой как Power Point. Один или оба из этих пунктов могут помочь .
Последнее делается для того, чтобы скопировать рассматриваемую таблицу. в этих форматах и вставьте их в сообщение электронной почты Outlook.
Cправка — Gmail
Войти
Справка Google
- Справочный центр
- Сообщество
- Gmail
- Политика конфиденциальности
- Условия предоставления услуг
- Отправить отзыв
Тема отзыва
Информация в текущем разделе Справочного центра
Общие впечатления о Справочном центре Google
- Справочный центр
- Сообщество
- Раньше не работали с интегрированным сервисом Gmail?
Gmail
Организуйте сообщения в чат-группах. Узнайте, как использовать цепочки.
Отправка книги или листа по электронной почте
Если вам часто приходится рассылать определенные книги или листы по электронной почте, то вы должны были заметить, что процедуру эту быстрой не назовешь. Если делать ее «классически», то надо:
- открыть почтовую программу (например Outlook)
- создать новое сообщение
- вбить туда адрес, тему и текст
- прикрепить к сообщению файл (не забыть!)
- нажать кнопку Отправить
На самом деле почту можно легко отправлять прямо из Excel кучей разных способов. Поехали…
Способ 1. Встроенная отправка
Если у вас еще старый добрый Excel 2003, то все просто. Открываете нужную книгу/лист и выбираете в меню Файл — Отправить — Сообщение (File — Send To — Mail Recipient). Откроется окошко, в котором можно выбрать один из двух вариантов отправки:
В первом случае текущая книга будет добавлена в сообщение как вложение, во втором — содержимое текущего листа попадет прямо в текст сообщения как текстовая таблица (без формул).
Кроме этого в меню Файл — Отправить (File — Send To) есть еще несколько более экзотических вариантов отправки:
- Сообщение (для ознакомления) (Mail Recipient for Review) — отправляется вся книга целиком и при этом для нее включается отслеживание изменений, т.е. начинает явно фиксироваться — кто, когда и в каких ячейках какие изменения производил. Отобразить внесенные изменения потом можно в меню Сервис — Исправления — Выделить исправления (Tools — Track changes — Highlight changes) или на вкладке Рецензирование — Исправления (Reveiw — Track Changes) Выглядеть это будет примерно так:
Цветные рамочки помечают изменения, внесенные в документ (для каждого пользователя — свой цвет). При наведении мыши всплывает похожее на примечание окошко с подробным описанием кто, что и когда изменил в этой ячейке. Весьма удобно для рецензирования документов, когда, например, вы правите отчет своих подчиненных или шеф правит ваш.
- По маршруту (Routing Recipient) — сообщение, куда будет вложена ваша книга, отправится по цепочке получателей, каждый из которых автоматически будет пересылать его дальше, как эстафетную палочку. При желании можно задать, чтобы в конце цепочки сообщение вернулось к вам обратно. Можно включить режим отслеживания изменений, чтобы видеть правки, внесенный каждым человеком в цепочке.
В новых Excel 2007/2010 ситуация немного другая. В этих версиях для отправки книги по почте нужно выбрать кнопку Офис (Office Button) или вкладку Файл (File) и команду Отправить (Send). Далее, пользователю предлагается набор вариантов отправки:
Обратите внимание на то, что в новых версиях исчезла возможность отправки отдельного листа книги, вставленного в тело письма — как это было в Excel 2003 и старше. Осталась только возможность отправить весь файл целиком. Зато появилась полезная возможность отправлять в известном формате PDF и менее известном XPS (аналог PDF, но не требует Acrobat Reader для чтения — открывается прямо в Internet Explorer). Команду отправки книги для ознакомления можно вытащить как дополнительную кнопку на панель быстрого доступа через Файл — Параметры — Панель быстрого доступа — Все команды — Отправить на проверку (File — Options — Quick Access Toolbar — All Comands — Send for Review).
Способ 2. Простые макросы для отправки
Отправка макросом гораздо проще. Открываем редактор Visual Basic через меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor), вставляем новый модуль в меню Insert — Module и копируем туда текст этих двух макросов:
Sub SendWorkbook() ActiveWorkbook.SendMail Recipients:="vasya@pupkin.com", Subject:="Лови файлик" End Sub Sub SendSheet() ThisWorkbook.Sheets("Лист1").Copy With ActiveWorkbook .SendMail Recipients:="vasya@pupkin.com", Subject:="Лови файлик" .Close SaveChanges:=False End With End Sub
После этого скопированные макросы можно запустить в меню Сервис — Макрос — Макросы (Tools — Macro — Macros). SendWorkbook отправляет на заданный адрес всю текущую книгу, а SendSheet — Лист1 как вложение.
При запуске макроса Excel будет обращаться к Outlook, что вызовет появление вот такого сообщения безопасности на экране:
Дождитесь, пока кнопка Разрешить станет активной и нажмите ее, чтобы подтвердить свою отправку. После этого созданные автоматически сообщения будут помещены в папку Исходящие и отправятся получателям при первом запуске Outlook или, если он у вас запущен, непосредственно сразу же.
Способ 3. Универсальный макрос
А если хочется отправлять не текущую книгу, а любой другой файл? И текст сообщения тоже неплохо было бы задать! Предыдущие макросы здесь не помогут, поскольку ограничены возможностями самого Excel, но можно создать макрос, который будет из Excel’я управлять Outlook’ом — создавать и заполнять окно нового сообщения и отправлять его. Макрос выглядит так:
Sub SendMail() Dim OutApp As Object Dim OutMail As Object Dim cell As Range Application.ScreenUpdating = False Set OutApp = CreateObject("Outlook.Application") 'запускаем Outlook в скрытом режиме OutApp.Session.Logon On Error GoTo cleanup 'если не запустился - выходим Set OutMail = OutApp.CreateItem(0) 'создаем новое сообщение On Error Resume Next 'заполняем поля сообщения With OutMail .To = Range("A1").Value .Subject = Range("A2").Value .Body = Range("A3").Value .Attachments.Add Range("A4").Value 'команду Send можно заменить на Display, чтобы посмотреть сообщение перед отправкой .Send End With On Error GoTo 0 Set OutMail = Nothing cleanup: Set OutApp = Nothing Application.ScreenUpdating = True End Sub
Адрес, тема, текст сообщения и путь к вложенному файлу должны быть в ячейках A1:A4 текущего листа.
Ссылки по теме
- Групповая рассылка почтовых сообщений из Excel с помощью надстройки PLEX
- Макросы для отправки почты из Excel через Lotus Notes от Dennis Wallentin
- Что такое макросы, куда вставлять код макроса на Visual Basic
- Создание писем с помощью функции ГИПЕРССЫЛКА
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 |
Sub ExcelToWordToOutlook() ' копирует таблицу Excel и вставляет её как текст или как картинку bitmap сначала в Word, а потом в тело письма Outlook Dim thistopic As String ActiveWorkbook.Activate Sheets("1").Select thistopic = Range("C2").Value Application.Run ("textcol5") ' это просто было выделение цветом разных подслов в тексте - делал через простой macrorecorder Sheets("1").Activate Dim ThisFiled As String ' Windows("Master Daily Sales Report h.xlsx").Activate ThisFiled = Range("N3").Value Dim wdApp As Object, wdDoc As Object Dim oOutlook As Object, oMessage As Object Set oOutlook = CreateObject("Outlook.Application") Set oMessage = oOutlook.CreateItem(0) oMessage.Attachments.Add (ThisFiled) oMessage.Display newHour = Hour(Now()) newMinute = Minute(Now()) newSecond = Second(Now()) + 2 waitTime = TimeSerial(newHour, newMinute, newSecond) Application.Wait waitTime ' здесь сделал "ожидание 2 секунды", чтобы успело создаться окно нового письма Set wdApp = CreateObject("Word.Application") wdApp.Visible = True Set wdDoc = wdApp.Documents.Add wdDoc.PageSetup.Orientation = wdOrientLandscape 'далее как раз просто копируется таблица и вставляется то как текст, то как bitmap, между ними делаю новый абзац, т.е. Typeparagraph With wdApp ActiveWorkbook.Activate Sheets("1").Range("B4").Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With '' ActiveWorkbook.Activate '' Sheets("1").Range("B5").Copy .Activate With .Selection '' .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("1").Cells(6, 2).Copy 'Selection.Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("1").Cells(7, 2).Copy 'Selection.Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("1").Range("a9:z25").CopyPicture Appearance:=xlScreen, Format:=xlBitmap .Activate With .Selection .Paste End With ' здесь думал сначала просто все картинки растянуть в 1.5 раза, но потом нашёл как растянуть до масштаба 100% ' With ActiveDocument.Shapes(1) ' .LockAspectRatio = 1 ' .Height = .Height * 1.5 '.Width = .Width * 1.5 ' .Size = 1 ' .LockAspectRatio = msoTrue ' End With ' With Selection.ShapeRange(1) ' .LockAspectRatio = msoFalse ' .Height = .Height * 1.5 ' .Width = .Width * 1.5 ' .LockAspectRatio = msoTrue ' End With ActiveWorkbook.Activate Sheets("Progress").Range("B500:B500").Copy 'это как помню просто пустая ячейка, как бы делал вставку пустой строки между пунктами, т.к. .typeparagraph делал слишком большой отступ по высоте .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("2").Range("B409").Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd ' .TypeParagraph End With ActiveWorkbook.Activate Sheets("2").Range("B410").Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("2").Range("a3:An408").CopyPicture Appearance:=xlScreen, Format:=xlBitmap .Activate With .Selection .Paste End With ActiveWorkbook.Activate Sheets("Progress").Range("B500:B500").Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("Progress").Range("B500:B500").Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("2").Shapes("markcolor").CopyPicture Appearance:=xlScreen, Format:=xlBitmap ' markcolor это было название картинки внутри excel-файла ежедневного отчёта, она объясняла что означали красный желтый и зелёный цвета кружков у %ов выполнения - её вставлял в текст письма, т.к. в таблице были эти самые кружки рядом с %ами прогресса продаж .Activate With .Selection .Paste End With '' ActiveWorkbook.Activate '' Sheets("Progress").Range("B370:B370").Copy .Activate With .Selection '.PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With .Activate With .Selection '.PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("3").Range("B409").Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("3").Range("a1:Ae407").CopyPicture Appearance:=xlScreen, Format:=xlBitmap .Activate With .Selection .Paste End With ActiveWorkbook.Activate Sheets("Progress").Range("B500:B500").Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("4").Range("B55").Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("4").Range("a1:Ae52").CopyPicture Appearance:=xlScreen, Format:=xlBitmap .Activate With .Selection .Paste End With ActiveWorkbook.Activate Sheets("Progress").Range("B500:B500").Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("5").Range("B20").Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("5").Range("a1:p18").CopyPicture Appearance:=xlScreen, Format:=xlBitmap .Activate With .Selection .Paste End With ActiveWorkbook.Activate Sheets("Progress").Range("B371:B371").Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ActiveWorkbook.Activate Sheets("6").Range("B24").Copy .Activate With .Selection .PasteExcelTable False, False, False '.Collapse Direction:=0 'wdCollapseEnd .TypeParagraph End With ' ActiveWorkbook.Activate ' Sheets("2").Range("a3:Am369").CopyPicture Appearance:=xlScreen, Format:=xlBitmap ' .Activate ' With .Selection ' .Paste ' End With ActiveWorkbook.Activate ActiveWorkbook.Activate Sheets("6").Range("a1:j22").CopyPicture Appearance:=xlScreen, Format:=xlBitmap .Activate With .Selection .Paste ' .WholeStory ' .Copy End With ' не помню почему, но почему-то 2 раза нужно было прогонять растяжение до 100%, чтобы точно все картинки были растянуты On Error GoTo Errlab1 .Activate ' Dim PercentSize As Integer Dim oIshp As InlineShape Dim oshp As Shape For Each oIshp In ActiveDocument.InlineShapes With oIshp .ScaleHeight = 100 .ScaleWidth = 100 End With Next oIshp Errlab1: .Activate ' Dim PercentSize As Integer Dim oIshp1 As InlineShape ' Dim oshp As Shape For Each oIshp1 In ActiveDocument.InlineShapes With oIshp1 .ScaleHeight = 100 .ScaleWidth = 100 End With Next oIshp1 .Activate For Each oshp In ActiveDocument.Shapes With oshp .ScaleHeight Factor:=(100 / 100), RelativeToOriginalSize:=msoCTrue .ScaleWidth Factor:=(100 / 100), RelativeToOriginalSize:=msoCTrue End With Next oshp .Activate With .Selection ' .Paste .WholeStory .Copy End With End With With oMessage ' .Attachments.Add ("D:AutoEm201402Daily_Sales_Progress_Report_20140312.xlsx ") .To = "name@bbbr.ru" .Subject = thistopic '' .BodyFormat = 3 ' olFormatRichText ' .Body = "" '.Attachments.Add ("D:AutoEm201402" & ThisFiled & ".xlsx") .Display SendKeys "{TAB}", True SendKeys "{TAB}", True SendKeys "{TAB}", True SendKeys "{TAB}", True SendKeys "^v", True .Display End With Set oMessage = Nothing Set oOutlook = Nothing End Sub |