Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Управление в маркетинге средствами электронной почты. Учебное пособие
.pdf
101
Рассылкипоэлектроннойпочте—одинизнаиболееэффективных способов продвижения продукта. Мы рассмотрим несколько
способоврассылкиматериалов.Во-первых,мырассмотримвопрос
формирования сообщения на основе более сложной логики, чем
мыиспользоваливмакросе Новогоднего поздравления.Во-вторых,
удобнорасполагатьматериалневкоде,невтелемакроса,чтоможет
приредактированиивызыватьошибки,новпапкеЗаметки.Вэтом
случаередактированиемможетзаниматьсянепрограммист.Далее,
напрактикечастовозникаетситуация,когдатребуетсяразослатьматериалвовложенныхфайлах.Мырассмотримитакуюзадачу.
Функции, выполняемыемакросом,определены в комментариях.Логикамакросанеусложняетсяизлишне,чтобынезатруднять восприятие. Листинг 21, вместе с тем, позволяетпредставитьсебеобщиевозможностиподхода.
Листинг 21. Макрос формирования текста сообщения
Sub ТренингПредложениеСложныйТекст()
'Функции
' создает Сообщение текст, которого берется из элемента Заметка
' и направляет его в адрес контактов в папке Тренинги, если Контакт имеет
' электронную почту
' Причем, если есть Имя, то обращение по имени
' в противном случае обращение - господа
' Если клиент не принимал участие в тренинге - один текст
' в противном случае - текст добавляется
'Блок объявлений
Dim aOl As Outlook.Application
Dim oNS As Outlook.NameSpace
'папки
Dim oFNote As Outlook.MAPIFolder
Dim oFlCn As MAPIFolder 'Объект - Папка MAPI

102
Dim oFN As MAPIFolder 'Папка Заметки
‘коллекции
Dim cCn As Outlook.Items ‘Коллекция Контакты
Dim cNotes As Outlook. 'Коллекция Заметки
'элементы
Dim iCn As ContactItem 'Элемент Контакт
Dim iM As MailItem 'Элемент Почтовое сообщение
Dim iNote As NoteItem 'Элемент Заметка
‘переменные
Dim lt As String
Dim noteBody As String ‘Содержание письма, суть тело Заметки без FS
Dim FS As String ‘первая строка Заметки
‘вспомогательные переменные
Dim i As Integer ‘параметр цикла
Dim iLT As Integer ‘позиция, с которой, собственно, начинается текст письма
Dim nLT As Integer ‘число символов в письме
‘Блок присваивания значений переменным
Set aOl = New Outlook.Application
Set oNS = aOl.GetNamespace(«MAPI»)
Set oFlCn = aOl.GetNamespace(«MAPI»).Folders(«Личные папки»)
.Folders(«Контакты»).Folders(«Клиенты»)
Set oFN = aOl.GetNamespace(«MAPI»).Folders(«Личные папки»)
.Folders(«Заметки»)_.Folders(«1 Тренинги»).Folders(«МП»)
'коллекции
Set cCn = oFlCn.Items
Set cNotes = oFN.Items
'Элементы
Set iCn = cCn.GetFirst
‘Set iNote = cNotes(“Для Ваших сотрудников и Ваших клиентов!”)

103
‘Цикл просмотра всех Контактов
For Each iCn In cCn
If iCn.Email1Address <> «» Then
Set iM = Application.CreateItem(olMailItem)
iM.To = iCn.Email1Address
iM.Subject = “23 и 24 сентября Тренинг по машинописи!”
If InStr(1, iCn.Categories, «МП +») > 0 Then
If iCn.NickName <> «» Then iM.Body = iCn.NickName & «!» & vbCrLf
Set iNote = cNotes(“Вы принимали участи в моих Тренингках
по машинописи.”)
iM.Body = iM.Body & vbCrLf & iNote.Body
Set iNote = cNotes(“Машинопись за один день”)
iM.Body = iM.Body & vbCrLf & iNote.Body
Else
If iCn.NickName <> «» Then
iM.Body = iCn.NickName & «!» & vbCrLf
Else
iM.Body = «Господа!» & vbCrLf
End If
Set iNote = cNotes(«Машинопись за один день»)
iM.Body = iM.Body & vbCrLf & iNote.Body
End If
iM.Save
End If
Next
End Sub
Автоматизацияпроцессаформированияконтента—этоочень
хорошаяидея.Нооконтролерезультатовзабыватьнеследует.Автоматизация —это внутренний бизнес-процесс. Иеслион окажетсябесконтрльным,то оченьлегкопотерятьклиентов.Иеще
раз следует подчеркнуть, что клиент должен чувствоватьобращениеименнокнему.Поэтомухорошейпрактикойбудетхотябы
выборочноепрочтениеиредактированиеСообщений.

104
Выможетевестинесколькопроектов.Посколькусегодняне
принятонаправлятьсообщениясвложеннымифайламибезявногонатосогласия,то перед тем, какнаправитьтакоесообщение
необходимо получить это разрешение. Будем исходитьиз того,
что ваши клиенты работают с электронной почтой правильно
иизсодержанияполяТемаможнопонять,чтоотвастребуется.
Однимизвозможныхподходоврешениязадачиможетбытьполнаяавтоматизация процесса.Тоестьмакросдолженобработать
событиеполучениясообщения с определеннымобразомоформленнымполемТема.Мыжерассмотримситуацию,когдасистема
несмоглаобработатьситуациюинеобходимовпапкеВходящие
выделить несколько сообщений, и в их адрес направить запрошенную рассылку. Листинг 22 представляет макрос, обеспечивающийрассылкусообщенийсвложеннымифайлами.
Листинг 22. Рассылка сообщений с вложенными файлами
Sub РассылкаВложений()
'Блок объявления переменных
Dim aOl As Outlook.Application
Dim oNS As Outlook.NameSpace 'объект NameSpace
Dim oFIn As Outlook.MAPIFolder 'объект папка Входящие
Dim oFCn As MAPIFolder 'объект папка MAPI
Dim cAt As Attachments 'коллекция вложений
Dim oAt As Attachment 'объект вложение
Dim cCn As Outlook.items ‘коллекция Контактов
Dim cM As Outlook.items ‘коллекция Сообщений электронной
почты
Dim cN As Outlook.items ‘коллекция Заметок
Dim oE As Outlook.Explorer ‘элемент Проводник
Dim oS As Outlook.Selection 'объект Выделенные элементы Outlook
Dim iM As MailItem ‘элемент входящее Сообщение
электронной почты

105
Dim iMR As MailItem ‘элемент ответное Сообщение
электронной почты
Dim iCn As Outlook.ContactItem 'элемент Контакт
Dim стрПоиска As String ‘строка поиска АЭП
Dim i As Integer ‘переменная цикла при считывании
‘Блок присваивания значений переменным
Set aOl = New Outlook.Application
Set oNS = aOl.GetNamespace(«MAPI»)
Set oFCn = aOl.GetNamespace(«MAPI»).Folders(«Личные папки»)
.Folders(«Контакты»).Folders(«Клиенты»)
Set oFIn = aOl.GetNamespace(«MAPI»).Folders(«Личные папки»)
.Folders(«Входящие»)
Set cM = oFIn.items
Set cCn = oFCn.items
‘объектной переменной присваивается значение активного проводника
Set oE = aOl.ActiveExplorer
Set oS = oE.Selection ‘объект Выделенные элементы папки
Входящие
Set iM = cM.GetFirst
Set iCn = cCn.GetFirst
Обработчик:
If oS.Count < 1 Then
MsgBox “Отсутствуют выделенные сообщения”
Exit Sub
End If
For Each iM In oS
MsgBox «SenderEmailAddress - « & iM.SenderEmailAddress & vbCrLf &
_«SenderName - « & iM.SenderName
стрПоиска = «Email1Address = « & SenderEmailAddress
Set iMR = CreateItem(olMailItem)
Set cAt = iMR.Attachments
cAt.Add «d:\УД\Рассылки\3 с Офис\Word Упр 2.doc»
cAt.Add «d:\УД\Рассылки\3 с Офис\Word Упр 3.doc»
cAt.Add «d:\УД\Рассылки\3 с Офис\Word Упр 4.doc»

106
cAt.Add «d:\УД\Рассылки\3 с Офис\Word Упр 5.doc»
cAt.Add «d:\УД\Рассылки\3 с Офис\Word Упр 6.doc»
cAt.Add «d:\УД\Рассылки\3 с Офис\Outlook Упр 1.doc»
iMR.To = iM.SenderEmailAddress
iMR.Subject = iM.Subject
iMR.Body = iM.SenderName & vbCrLf
iMR.Body = iMR.Body & «»
iMR.Body = iMR.Body & «»
iMR.Display
iMR.Save
Next
End Sub
Комментарии к макросу
Вмакросе используетсяобъектSelection —этовыделенные
пользователем сообщения электронной почты, в адрес которых
будетсделанарассылка.ВводятсяобъектAttachment—вложение
иколлекциявложенийAttachments.Необходимобытьвнимательнымприопределениипутикдокументам,которыеподлежатотправке.В нашем случае они находятсяв папкеРассылки. Если
запускаетсямакрос,нониодноизсообщенийневыделено,товыдаетсясообщениеотом,чтообъектSelectionпуст.

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

108
ПреподаваниевбольшинствевысшихучебныхзаведенийисходитизГосударственногообразовательногостандарта.Наосновестандарта накафедрахразрабатываютсяучебные программы
дисциплин.Профессор,ведущийкурс,разрабатываетпоследовательностьпрохождениядисциплины,наоснованиикоторойучебныйотделвузаосуществляетпланированиеввидерасписаниязанятий.
Не во всех вузах применяется электронный документооборот,поэтомуможетвозникнутьзадачапереносарасписания
занятийсбумажногоносителявперсональныйкомпьютерили
карманныйперсональныйкомпьютер(КПКилиPDA).Длярешения такой задачи может быть использовано предлагаемое
приложение.
ФрагментрасписаниязанятийвформетаблицыExcelпредставленнарисунке28.Созданиетакойтаблицынепредставляет
никакого труда. Отметим лишь две особенности. Во-первых,
на рисункевышетаблицы можно увидеть командную кнопку
ПередатьвOutlook.Во-вторых, нижетаблицыможно видеть
Командную панельVisualBasic,котораянеобходимадляработы
сЭлементами управленияисобытиями,связанными,вчастно-
сти,сманипуляциямисэтимиЭлементами управления.
Еслипреподавательпринимаетучастие в несколькихпроектах,товозникаетопасностьнакладок.Исогласованиерасписаний
потребуетвремени.Еслижевсе расписанияпередатьв Outlook,
то накладки будут выявлены автоматически. Кроме того, представления Outlook позволяют манипулировать расписаниями
вболееудобныхформатах.
Нашазадачабудетсостоятьвтом,чтобыпередатьрасписаниеслистаExcelвКалендарьOutlook.Естественноэтотпроцессбудетавтоматизированспомощьюмакроса.Дляудобства
пользователязапускмакросабудетосуществлятьсяспомощью
команднойкнопки,которуюмырасположимналистеExcel.

109
Рис. 28. Расписаниезанятий
Выполнитьпоследовательностькоманд1.
МенюВидПанелиинструментовVisualBasic
НаэкранепоявитсяКомандная панельVisualBasic(рис.28).
Щелкнутьпокнопке2. Режим конструктора
.
Станут активными все кнопки Командной панели Visual
Basic.
Щелкнутьпокнопкепанели3. Элементы управления
НаэкранепоявитсяпанельЭлементы управления(рис.29).
Рис. 29. Панельэлементовуправления
.

110
Панель Элементы управления, видимо, будет иметь иные
геометрическиепропорции.Нампоказалось,чтолучшимибудут
именнопредставленныепропорции.
Перетащитькоманднуюкнопкунарабочийлист.4.
Определитесвойства5. Командной кнопки.
ДляэтогонеобходимощелкнутьправойкнопкоймышипосозданнойвамикнопкенарабочемлистеивКонтекстном менювы-
братьопциюСвойства (рис.30).
Рис. 30. ОпределениесвойствКомандной кнопки
Нарисунке31представленапанельопределениясвойствактивного Элемента управления. Такие свойства, как положение
на рабочем листе (Top, Left), геометрические размеры (Width,
Height),лучше определятьс помощьюмыши (перетаскиваяКомандную кнопкувнужноеместоэкранаилиизменяяееразмеры).
Нас же прежде всегобудут интересовать два свойства —Name
иCaption.СвойствоName—этоимяКомандной кнопки,которое
будетиспользоватьсявзаголовкепроцедурыобработкисобытия,
имя,котороебудетиспользоватьсявтелепроцедуры.
Caption — это название кнопки, под которым пользователь
будетвидетьеенарабочемлистеExcel.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
