Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 17
Outlook

Как сделать автоматическую рассылку?

07.06.2011, 21:10. Показов 3911. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста:

как запрограммировать, чтобы в Outlook одно из писем в папке "Входящие" (например самое последнее из пришедших) автоматически пересылалось большому числу адресатов

(при этом, желательно, чтобы адреса для рассылки брались из таблицы Excell)

может кто уже сталкивался с такой задачей?

а то я на VBA в Outlook раньше не программировал - только в Excell

заранее спасибо за совет
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.06.2011, 21:10
Ответы с готовыми решениями:

по данным из Excel сделать рассылку в Skype, ICQ. Возможно?
Здравствуйте! Проблема: в таблице Excel содержаться контактные данные автоперевозчиков. Нужно...

Как сделать автоматическую простановку нумерации в эксель?
Собственно задача в том в чтобы проставить необходимую нумерацию в строки для одного столбца....

Как сделать автоматическую сортировку в новые листы по специалистам и ФИО заявителей?
каждый день приходиться обрабатывать по 100 заявлений, реестр приходит в формате Ехсеl. 4...

4
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
09.06.2011, 13:02
Код (читайте комментарии):
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
Sub P1()
'Самоучитель: Слепцова Л.Д. Есть раздел по работе с MS Outlook.
'Подключаем объекты библиотеки Excel:
'Tools - References... - Microsoft Excel Object Library.
'С Excel будем работать через объектную переменную Эксель,
'которая и будет представлять собой сам Excel
'(имена переменных не должны совпать с именами объектов,
'иначе может быть ситуация, что компилятор примет переменную за объект).
Dim Эксель As Excel.Application
Dim Книга As Excel.Workbook
Dim Адреса As String, LastRow As Long
'Доступ к папкам осуществляется через объект NameSpace.
Dim СписокИмён As Outlook.NameSpace
Dim Входящие As Outlook.Folder 'в MS Outlook 2003 - As Outlook.MAPIFolder
Dim Письмо As Outlook.MailItem
Dim i As Long
'Всегда используется MAPI (др. нет - закрыли проект).
Set СписокИмён = GetNamespace("MAPI")
'Помещаем в объектную переменную Входящие папку Входящие.
'Папка Входящие всегда есть в наличии, поэтому доступ к ней
'осуществим с помощью следующей конструкции.
Set Входящие = СписокИмён.GetDefaultFolder(olFolderInbox)
'Проверяем, есть ли в папке Входящие письма, чтобы не было
'ошибки, если там вообще ничего нет.
If Входящие.Items.Count = 0 Then
    Exit Sub
    MsgBox "В папке Входящие нет писем", vbCritical
End If
'Рассмотрим ситуацию, что книга с электронными адресами открыта
'и является активной. Если книга открыта, то запускать программу
'Excel не надо, а подсоединимся к уже запущенной программе Excel.
Set Эксель = GetObject(Class:="Excel.Application")
Set Книга = Эксель.ActiveWorkbook
'Предполагается, что каждый электронный адрес находится в отдельной ячейке.
'В моём случае электронные адреса будут находиться
'на первом листе в первом столбце.
'Формируем переменную, содержающую все электронные адреса
'из  Excel. К каждому адресу надо добавлять точку с запятой.
'Определяем последнюю заполненную ячейку в первом столбце.
LastRow = Книга.ActiveSheet.Cells(Книга.ActiveSheet.Rows.Count, 1).End(xlUp).Row
For i = 1 To LastRow Step 1
    Адреса = Адреса & Книга.ActiveSheet.Cells(i, 1).Value & ";"
Next i
'Помещаем в переменную Письмо последнее письмо в папке Входящие.
Set Письмо = Входящие.Items(Входящие.Items.Count)
'Указываем адреса.
Письмо.To = Адреса
'Если в копию надо, то:
'Письмо.CC = Адреса
'После того, как строка сформирована с адресами, отправляем письмо.
Письмо.Send
MsgBox "Пересылка письма завершена", vbInformation
End Sub
0
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 17
09.06.2011, 18:32  [ТС]
Спасибо большое!

подскажите еще, пожалуйста:

как посредством VBA из "тела" письма Outlook перед отправкой удалить "ненужные" первые 5 строк

-----Original Message-----
From: Arthur Arakelyan [mailto:вапвпвп@yahoo.com]
Sent: Thursday, June 02, 2011 9:23 AM
To: павапвап
Subject: вапавпвап
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
09.06.2011, 19:34
Код:
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
Sub P1()
Dim ПространствоИмён As Outlook.NameSpace
Dim Входящие As Outlook.Folder 'в MS Outlook 2003 - As Outlook.MAPIFolder
Dim Письмо As Outlook.MailItem
Dim Массив() As String
Dim i As Long
Set ПространствоИмён = GetNamespace("MAPI")
Set Входящие = ПространствоИмён.GetDefaultFolder(olFolderInbox)
If Входящие.Items.Count = 0 Then
    MsgBox "В папке Входящие нет писем", vbCritical
    Exit Sub
End If
Set Письмо = Входящие.Items(Входящие.Items.Count)
'В конце каждой строки в тексте письма есть два невидимых
'символа, коды которых по ASCII: 13 и 10.
'Основываясь на них создадим массив с помощью
'встроенной функци VBA: Split. Затем этот массив
'вернём обратно в письмо, но без пяти первых элементов.
Массив = Split(Письмо.Body, Chr(13) & Chr(10))
'Очищаем текст письма.
Письмо.Body = ""
'Заполняем текс письма обратно.
'Порядковый номер первого элемента массива ноль.
For i = 5 To UBound(Массив) Step 1
    Письмо.Body = Письмо.Body & Массив(i) & Chr(13) & Chr(10)
Next i
End Sub
0
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 17
09.06.2011, 21:12  [ТС]
еще раз спасибо за помощь, но примерно так я уже пробовал

получается, что если обрабатывать .body просто как текст, то в результате теряется все форматирование текста (размер шрифта, "жирный" шрифт и т.п.) а также теряются все встроенные в текст картинки

а нужно, чтобы все форматирование текста сохранилось (включая вставленные картинки)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2011, 21:12
Помогаю со студенческими работами здесь

Можно ли прикрутить к сайту рассылку о новых темах?
А возможно ли прикрутить к сайту рассылку не только об ответах, а и о новых темах? Было б очень...

Возможно ли средствами VBA реализовать автоматическую загрузку всей динамически подгружаемой веб-страницы?
Возможно ли средствами VBA реализовать автоматическую загрузку всей динамически подгружаемой...

Нужно в Google таблице в листе под названием АКТЫ СВЕРКИ автоматическую вставку даты в колонку А при вводе данных в коло
Добрый день. Нужно в Google таблице в листе под названием АКТЫ СВЕРКИ автоматическую вставку даты...

Автоматическая рассылка файлов адресатам в Outlook
Всем привет! По работе каждый день приходится обрабатывать множество заказов (ктотрые...

Автоматическая рассылка выбранных файлов
Всем добрый день! Не совсем уверен, что написал по теме, прошу простить. Имею рутинную задачу,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru