Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Управление в маркетинге средствами электронной почты. Учебное пособие
.pdf
41
Еслиу3. Контактаесть адрес электронной почты— соз-
даетсяСообщение.
Свойствам4. Сообщения(To, Subject)присваиваютсязначения.
Формируетсясвойство5. Body.
ЕслиуКонтактаопределеносвойствоNickName,тообращение
кадресатуосуществляетсяпоимени.Еслиэтосвойствонеопределено,тообращениеосуществляетсяпоимени-отчеству.
Исходное состояние Информационной системы
Впапке1. Контактыдолжнысуществоватьнесколькоконтактов, для ряда из которых должны быть определены адреса
электроннойпочты.
Долженбытьопределенпорядоквводаинформацииофа-2.
милии,именииотчествеКонтакта.
Чтобыопределитьэтотпорядок,необходимо выполнить по-
следовательностькоманд(рис.12).
МенюСервисПараметрыПараметрыконтактов
ВOutlookинформацияофамилии,именииотчествевводится
какполное имя, т.е. как некоторая единаясущность. В стандартнойформеКонтакт естьтакжеполеХранить как,котороеформи-
руетсяавтоматически,ноприэтоместьвозможностьвыбратьодин
изпредоставляемыхформатовхраненияданных.Вовсякомслучае,
необходимо изначально определить порядок ввода информации
оКонтактеивсегдаследоватьэтомупорядку.Впротивномслучае
автоматизацияработысКонтактамибудетневозможной.
Подготовительная работа
ВАдресной книге Outlook Expressможнобыло найти названиеполяNickName,правда,какпоказываетопыт,большаячасть
пользователей это поле не заполняли. В Outlook 2003 названия
поляNickName нет, нона вкладкеПодробности элемента Кон-
тактестьназваниеполяКраткое имя.Ночтоэтоназваниеобозначает?Ктоскажет!Такимобразом,нашазадачаопределитькакоеполестандартнойформыКонтактысоответствуетсвойству

42
Рис. 12. ОпределениепараметровКонтактов
NickName элемента Контакт. Листинг 2 представляет макрос,
которыйпозволяетответитьнапоставленныйвопрос.
Листинг 2. Тест свойства NickName
Sub NickTest()
Dim aOl As Outlook.Application
Dim iCn As Outlook.ContactItem
Set aOl = New Outlook.Application
Set iCn = CreateItem(olContactItem)
iCn.NickName = «NickName»
iCn.Display
End Sub
Запуститемакрос и откройте вкладку ПодробностисозданногоКонтакта—выувидите,чтовполеКраткое имябудетза-

43
писаноNickName, т.е.свойство NickName будетсоответствовать
полюКраткое имя.
Возможно,увасвозникнут проблемывработе сосвойствами,связаннымисименем. Поэкспериментируйтесосвойствами
FirstName, MiddleName, LastName, NickName. Листинг 3 представляетмакрос,которыйпоможетпонять,какобращатьсясэтимисвойствамиэлементаOutlookКонтакт.
Листинг 3. Тест свойства FullName
Sub NamesTest()
Dim aOl As Outlook.Application
Dim ons As Outlook.NameSpace
Dim oFlCn As MAPIFolder ' Объект - Папка MAPI
Dim cCn As Items ‘ Коллекция Контакты
Dim iCn As ContactItem ' Элемент Контакт
Set aOl = New Outlook.Application
Set ons = aOl.GetNamespace(«MAPI»)
Set oFlCn = aOl.GetNamespace(«MAPI»).Folders(«Личные папки»).
Folders(«Контакты»)
Set cCn = oFlCn.Items
For Each iCn In cCn
If iCn.FullName <> «» Then
MsgBox «FirstName - « & iCn.FirstName & vbCrLf _
& «MiddleName - « & iCn.MiddleName & vbCrLf _
& «LastName - « & iCn.LastName & vbCrLf _
& «NickName - « & iCn.NickName
End If
Next
End Sub
В ходе выполнения макроса на экран будет выдаваться
сообщение(рис.13).

44
Рис. 13.Результатэксперимента
поисследованиюсвойстваПолное имя Контакта
Изрисункаследует,чтосвойствоFirstNameнесет информациюобименииотчестве,втовремякаксвойствоMiddleNameне
несетникакойинформации.
Макрос рассылки новогодних поздравлений
Листинг 4 представляет макрос рассылки новогодних поздравлений.
Листинг 4. Рассылка Новогодних поздравлений
Sub РассылкаНовогоднегоПоздравления()
'Блок объявлений
Dim aOl As Outlook.Application
Dim oNS As Outlook.NameSpace
Dim oFlCn As MAPIFolder ' Объект - Папка MAPI
Dim iM As MailItem ‘ Элемент Почтовое сообщение
Dim cCn As Items ‘ Коллекция Контакты
Dim iCn As ContactItem ' Элемент Контакт
Dim LT As String ' Текст письма
‘Блок присваивания значений переменным
Set aOl = New Outlook.Application
Set oNS = aOl.GetNamespace(«MAPI»)
Set oFlCn = aOl.GetNamespace(«MAPI»).Folders(«Личные папки»).
Folders(«Контакты»)

45
Set cCn = oFlCn.Items
Set iCn = cCn.GetFirst
‘Блок формирования Поздравления
LT = “Поздравляю с Новым годом” & Chr(13)
LT = “Желаю крепкого здоровья, успехов в работе” & Chr(13)
LT = “…” & Chr(13)
LT = LT & С наилучшими пожеланиями” & Chr(13)
LT = LT & “ Дм.Куприянов “ & Chr(13)
LT = LT & « MyAdress@sm.ru « & Chr(13)
‘Цикл просмотра всех Контактов
For Each iCn In cCn
If iCn.Email1Address <> «» Then
Set iM = Application.CreateItem(olMailItem) 'Создание Сообщения
iM.To = iCn.Email1Address ‘определение адреса ‘электронной
почты
iM.Subject = “Новогодние поздравления”
If iCn.NickName <> “” Then
iM.Body = iCn.NickName & «!» & vbCrLf & LT
Else
iM.Body = iCn.FirstName & «!» & vbCrLf & LT
End If
iM.Body = LT
iM.Display
End If
Next
End Sub
Ниже приведены результаты действия макроса для случаев
неформальногои формальногообращения к адресатам(рис. 13
и 14). Текстпоздравленияв обоих случаях только «обозначается».Ноотметим,чтодлякаждогоадресататекстможетбытьподработанотдельно.

46
Рис. 14. Формированиенеформальногопоздравления
Рис. 15. Результатавтоматизациисозданияформальногопоздравления

47
Напомним,чтовотношенииСообщения(объектнаяпеременнаяiM)могутбытьиспользованыметодыDisplay,SaveиSend.
Входевыполнениямакроса будетвыдано окно предостережения (рис. 16). Если установить флажок Разрешить доступ,
тобудетоткрытдоступкработемакросасКонтактамиибудут
сформированысразувсесообщения.Впротивномслучаепридетсяразрешатьдоступнесколькораз.
Рис. 16.ОкноразрешениядоступакинформацииOutlook
Макроспредельнопрост.Макросневеликпо объему,нопозволяетсущественноповыситьэффективностьработы.То,зачто
впринципередкоктоберется(комунужнаэтанемалаяработа—
разослатьнесколькосотенпоздравлений),можетбытьвыполнено
втечениесчитанныхминут.Да,текстпоздравлениястандартный,
одинитотжедлявсехадресатов.Новывкаждомобращаетесьпо
имени.Болеетого,ещераз,есливыкому-тохотитедобавитьнесколькоотдельныхстрок,—никакихпроблем.Естественно,что
помимопоздравленийможноаналогичнорассылатьприглашения
напрезентации,информациюоновыхтоварахит.д.
Комментарии к макросу
Вмакросе(Листинг4)используетсянескольконовыхобъектов.
ОбъектнаяпеременнаяoNSобозначаетобъектNameSpaceприложе-

48
ния Outlook.Этообластьпамяти,вкоторойхранится информация
Outlook.ИнформацияхранитсявЛичных папках,такихкакКонтак-
ты,Календарьит.д.ЭтопапкиMAPI.Объявляютсятакжеобъект-
ныепеременныеoFlCn—объект—папкаКонтакты,iCn— элементКонтактиcCn—коллекцияэлементовКонтакт.
ОбъектприложениеOutlook(объектнаяпеременнаяaOl)обладает методом GetNamespace(«MAPI»), который открывает доступкстандартнымпапкамиOutlook.
Set oNS = aOl.GetNamespace(«MAPI»)
ОбъектуoFlCnприсваиваетсязначение
aOl.GetNamespace(“MAPI”).Folders(“Личные папки»).Folders(«Контакты»). _
Set oFlCn = aOl.GetNamespace(«MAPI»).
Folders(«Личные папки»).Folders(«Контакты»)
Коллекция Контактов cCn представляет собой элементы
стандартнойпапкиКонтакты.
Set cCn = oFlCn.Items
АэлементКонтакт(объектнаяпеременнаяiCn)изначально
определяетсякакпервыйэлементколлекцииКонтактов
Set iCn = cCn.GetFirst
ВциклепросмотравсехКонтактовстандартнойпапкиКонтакты,еслиуКонтактаестьадресэлектроннойпочты,созда-
етсяСообщение. Причем,если уКонтактаопределеноКороткое имя (вкладкаПодробностиформыКонтактыилисвойство
NickName объектной переменной iCn), в теле Сообщения ис-
пользуетсянеформальное обращение через свойство NickName.
Впротивномслучаеиспользуетсяформальноеобращениечерез
свойствоFirstName.
Макрос можно усовершенствовать. Например, если свойствоNickNameопределено,всообщениевставляетсяодинтекст
поздравления(неформальный).Впротивномслучаенаправляетсядругойтекстпоздравления.

49
Формы имеют очень большое значение в обеспечении эффективности работы пользователей. MS Outlook отличается от большинстваприложенийтем,чтопомимочистопользовательскихформ
вэтомприложенииширокоиспользуютсяпользовательскиеформы,
которыеразрабатываютсянаосновеСтандартных формOutlook.
Стандартные формы Outlook предоставляют пользователю
широкиевозможности.Так,стандартная форма Контактимеет
более100различныхполей,ибольшаячастьэтихполейдоступнаизСтандартной формы.Особымразнообразиемотличаются
поля,связанныесразличнымивидамителефонов.Ноестественнопредположить,чтоупользователяможетвозникнуть необходимостьвсозданиисобственныхформ.Предположим,чтовстандартнуюформуКонтактнеобходимодобавитьполеАббревиату-
ра.Необходимостьэтогоможетбытьобъясненатем,чтомногие
организации имеют достаточно длинные названия, что требует
большоговременинавводподобнойинформации.
Чтобы отредактировать стандартную форму элемента Кон-
такт, необходимовыполнитьследующиедействия.
Откройтеформуврежимеконструктора.1.
Дляэтогонеобходимовыполнитьпоследовательностькоманд
МенюСервисФормыКонструкторформ
Рисунок17 иллюстрируетрезультатвыполненияпоследовательностикоманд.
В открывшемся диалоговом окне2. Выбор формы в раскры-
вающемсяспискепапкивыберитеопциюБиблиотека стандартных
форм.
Впоявившемсянаэкранеспискестандартныхформдваж-3.
дыщелкнитепоопцииКонтакты.
ВрезультатепоявитсястандартнаяформаКонтакт врежиме
конструктора(рис.18).Режим конструктораполялегкоопреде-
ляетсяпонадписи встрокезаголовкаформы,а такжепохарактерномуфонуформы.

50
Рис. 17. ОбращениекБиблиотеке стандартных форм
Рис. 18.ЭлементКонтактврежимеконструктора
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
