Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Управление в маркетинге средствами электронной почты. Учебное пособие
.pdf
31
ции.Этапроцедуранезайметувасмноговремени,нопоможет
вамлучшепонять,длячегосоздаетсямакрос.Полезнымоказываетсяуказыватьдатысозданияиредактированиямакросаиего
работоспособность.
Вдальнейшемвлистингахтитульнаячастьбудетопускаться.
Ноещеразподчеркнем,чтоэтооченьполезно,когдавмакросы
включаетсянекотораясправочнаяинформация,котораяотвечает
нанекоторыевопросы.Полезнотакжефиксироватьзамыселмакросаидаватьподробныекомментарииккоду.
Вдальнейшембудетполезнымвключитьвшаблонмакросаинструкцииобъявленияпеременныхиприсваиванияимначальных значений. Пусть этих инструкций в шаблоне будет
много. Лишнее убрать несложно. Но это будутработающие
инструкции.Основнаяжесложностьзачастуюсвязанастем,
что всякая новая строка кода несет в себе потенциальную
ошибку.
Теперь несколько слов в качестве комментариев. В Блоке
объявлениймакросаобъявляютсяобъекты:
Application− —этообъект—самоприложениеOutlook;
MailItem− —этообъект—Сообщение электронной почты;
Lt—этопеременнаятипа− String,котораябудетпредставлять
собойтекстписьма(Сообщения электронной почты).
ВБлокеприсваиваниязначенийпеременнымоператорыприсваивания
SetaOl=NewOutlook.Application
SetiM=Application.CreateItem(olMailItem)
аналогичныиспользуемымнижеоператорамприсваиваниязначениястроковойпеременной
LT=“УважаемыйСтаниславВикторович!”&Chr(13)
Однакоприприсваиваниизначенийобъектнымпеременным
используетсяключевоесловоSet.
ВблокеформированияСообщения несколькоразвстречаетсялитералChr(13),которыйобеспечиваетвыводнаэкранпоследующеготекстасначаластроки.Длянекоторыхпонятнеебудет

32
использование вместо этого литерала встроенной константы
VisualBasicvbCrLf.ОбъектнаяпеременнаяiMобладаетсвойствамиBody(Телоилисодержаниесообщения),Subject(Тема сообще-
ния)иTo(Кому—адресэлектроннойпочтыКонтакта).Вмакро-
сеэтимсвойствамприсваиваютсязначения.
Последний блок макроса назван Блок вывода сообщения
на экран. Для вывода Сообщения на экран используется метод
DisplayобъектаСообщение.Вкомментарияхприведеныещедва
метода—SaveиSend.МетодSaveсохраняетсозданноеСообщениевпапкеЧерновики,аметодSendпомещаетСообщениевпапкуИсходящие.
Интеллектуальная подсказка, или Как набирать код
СредаVBEпредоставляетрядвозможностей,которыепозволяютразработчикуэффективносоздаватькод,т.е.сокращатьвремянавводкодаиегоотладку.Однимизтакихсредствявляется
интеллектуальнаяподсказка. Суть этого инструмента состоит в
том,чтоприправильномвводесистемаподсказываетразработчикувозможныевариантыкода(рис.6).
Рис. 6. Примериспользованияинтеллектуальнойподсказки
СьюМошерподсчитала[7],чтоеслиправильноиспользовать
интеллектуальнуюподсказку,топримернонатретьможносокра-

33
титьработуповводукодамакросов.Интеллектуальнуюподсказкуможноиспользоватьпо-разному.Нонаилучшийспособ—продолжатьвводдотехпор,покавраскрывающемсяспискенебудет
выделен необходимый объект, свойство или метод, после чего
следуетнажатьклавишутабуляции.Старайтесьменьшеработать
с использованием мыши. Помните, что профессионалы управляют работой компьютера преимущественно с использованием
клавиатуры.
Создание кнопки запуска макроса
ЕсливыдействительнодостаточночастонаправляетеСообщениеэлектроннойпочтыодномуизадресатов,тобудетцелесообразным после создания макроса разместить на панели команд
кнопкузапускамакроса(рис.7).
Рис. 7. Связываниекнопкисмакросом

34
ЧтобыразместитькнопкузапускамакросанаПанели команд
Стандартная, необходимо
Выполнитьпоследовательностькоманд1.
МенюСервисНастройкаКомандыМакросы
Всписке2. Командывыбратьнеобходимый макроси пере-
тащитьегомышьюнаПанель команд Стандартную.
Пользовательскиекнопки, пользовательскиеменюипользовательские панели инструментов могут существенно повысить
эффективностьработы.
Удаление кнопки запуска макроса
Возможно,вампотребуетсяудалитьразмещенныевамикнопкисПанели команд Стандартная.Дляэтогонеобходимовыпол-
нитьследующуюпоследовательностьдействий.
Выполнитепоследовательностькоманд1.
МенюСервисНастройка
Вокне2. НастройкавыберитевкладкуКоманды.
В окне3. Категории выберите опцию Стандартная и на-
жмитенакнопкуУпорядочить.
Вокне4. Изменение порядка командвыберитеопциюПанель
инструментов,авраскрывающемсяспискесправаотрадиокнопкиопциюСтрокаменю.
Всписке5. Элементывыберитемакрос,которыйнеобходимоудалить,ищелкнитепокнопкеУдалить(рис.8).
Кпроцедуреудалениякнопкиприбегатьпридется,поскольку
современем их числоувеличивается иоказываетсяболееудобнымзапускатьмакросыизПользовательского меню.
Сохранение модуля. Экспорт и импорт файлов
Полезныймакрос—этомакрос,которыйвыиспользуетесегодняилисможетеиспользоватьвбудущем,чтобысделатьвашуработуболееэффективной.Отладитьмакроспредставляетсобойиногда
весьма непростую задачу. А это значит, необходимо предпринять
усилия,чтобыэтойработеничтонеугрожало.Угрозможетбытьне-

35
Рис. 8. Удалениекнопкизапускамакроса
сколько.Однаизочевидных—выходизстрояжесткогодиска.Одно
изочевидныхрешенийпроблемы—резервноекопированиеданных
навнешниеносители,напримернаFlash.КакисданнымивOutlook,
работасмакросамиимеетособенность—вопциименюФайлотсутствуетопцияСохранить как(рис.9).Однимизрешенийпроблемы
можетбытькопированиемодуляисохранениеегокактекстовогодокумента.Новтакомслучаевозможныпроблемысперекодировкой
текстамакроса,написанногонарусскомязыке.
Проблемыперекодировкине возникает,еслиимпортировать
выполнивследующийалгоритм.
Создайтепапку, в которойвы намерены хранить модули1.
VBA.

36
Рис. 9. Экспортиимпортмодуля
ОткройтеVBE.2.
Выделите модуль,которыйнеобходимосохранить, и вы-3.
полнитепоследовательностькоманд
МенюФайлExportFile
ВокнеExportFile(рис.10)определитеместохранениямо-4.
дуля,имямодуляирасширениемодуля.
Рис. 10. Определениеимениирасширениямодуля

37
По умолчанию система предлагает имени файла расширение*.bas.Ноэторасширение лучше изменитьна*.txt,т.к.если
оставить расширение *. bas, то будет запускаться приложение
VisualBasic.Мыжеработаемсмодулемв приложенииOutlook.
Целесообразноиметьнекоторуюсистему,всоответствиискоторойприсваиватьименамодулям.Например,имяtest_20050504.txt
означает, чтоэто модуль, в котором сохранены макросытестов,
экспериментов при работе над полезными макросами Outlook.
Датасохранения— 4мая2005.Укаждогоможетбыть своясистема—важно,чтобыэтасистемабыла.Будетхорошо,еслиэта
системабудетопределенаписьменно.Зафиксируйтеэтусистему
письменно.Иследуйтеейнеукоснительно.Дажеесливыделаете
что-то«наколенке»—делайтекакследует.
Хорошо, еслиу васне будетвозникатьнепредвиденныхобстоятельствивамнепридется обращатьсякрезервным копиям.
Новыможетеработатьненасвоемкомпьютере,напримервучебномклассе,исохранятьнаработанныйкод,напримернадискете,
алучшенаFlash.Чтобычерезнекотороевремявернутьсяксвоей
работе,необходимоимпортироватьсвнешнегоносителявашмодуль.Дляэтогонеобходимовыполнитьалгоритм.
ОткройтеVBE.1.
Выполнитепоследовательностькоманд2.
МенюФайлImportFile
Вокне3. Import Fileвыберитенеобходимыйфайл(рис.11).
Операцииэкспорта/импортаполезныдлярезервногокопирования,обменакодоммеждусотрудниками,переносакодавдокументWordприсозданиидокументации.
Учение о префиксах занимает почетное место практически
вовсехучебникахпопрограммированию.Едвалиможносерьезно
настаиватьнаихбольшомзначениидляэффективностипроцесса
созданиясерьезныхпрограмм.Еслиговоритьо«русскоязычном»
программировании, т.е. когда используютсяимена идентификаторовнарусскомязыке,топринятая система«английских»пре-

38
Рис. 11. Импортмакроса
фиксовкак-товыпадает.Вместестем,можнопредположить,что
имеетсмыслхотябыврамкаходногоразделаиспользоватьпеременныесоднимименем.
В настоящеевремя достаточношироко используются длинныеименапеременных,констант,объектов.Втакомслучаеможно
создаватькодсдостаточнокороткимикомментариями.Новэтом
случаеувеличиваетсявремя набора, истрокакодачасто превышает ширину экрана: чаще приходится использовать перенос
икодстановитсянеудобночитать.
Вчемдостоинствокороткихимен?Короткиеименабыстрее
вводитьвкомпьютер,истрокакодаполучаетсякороче,азначит
илегчедлячтения
Чтениекоданевызываеттрудностей,еслиснимчастоработать
иеслинеукоснительноследоватьправиламназначенияимен.
Какие здесь будут требования? Имена должны быть легко
различимымежду собой илегкоразличимы сименами свойств
иметодов.

39
Таблица2представляетнаиболеечастовстречающиесяименаобъектов,ихпрефиксыиидентификаторы.
a application aExcel aXl
a application aOutlook aOl
a application aWord aWd
c collection cBarPanes cBP
c collection cFolderContacts cFC
c collection cFolderDeleted cFD
c collection cFolders cF
c collection cFoldersInbox cFI
c collection cInspectors cIn
c collection cItems cIt
c collection clinks cL
c collection cRecipients cR
c collection cShortcuts cSC
i i параметрцикла i
i item iAppointment iA
i item iContact iCnt
i item iJournal iJ
i item iNote iN
i item iTask iT
o object oAttachment oAtt
o object oBarPane oBP
o object oFolder oF
o object oFolderContacnts oFC
o object oFolderTasks oFT
o object oForm oFrm
o object oFormDescription oFD
o object oInspector oIn
o object oItem oIt
o object oLink oL
o object oNameSpace oNS
o object oRecipient oRc
o object oShortcut oSC
p property pSelection pS
с collection cContacnts cCnt

40
Основысистемыназначенияимензаложены.Ноэтополдела.
Главное—неукоснительноследоватьсозданнойсистеме.Этосущественнымобразомоблегчитпроцесснаписания,отладкиисопровождениякода.
Однаждымною былополучено сообщениеэлектронной почтыпримернотакогосодержания:
Дорогой друг!
В связи с тем, что на мой адрес стало приходить огромное
количество спама, вынужден сменить свой адрес электронной почты. Впредь прошу направлять мне сообщения на адрес
myNewAdress@mail.ru.
С наилучшими пожеланиями,
Сергей
Безусловно,приятно,чтоестьлюди,длякоторыхтыявляешьсядругом.Особенноприятно,чтотынепростодруг,нодорогой
друг.Ночувствуешь,чтоздесьвсе-такичто-тонетак.
Хорошийтонтребует,чтобыкчеловекуобращалисьпоимениотчествуилиимени,взависимостиотобстоятельств.Outlookпозволяетавтоматизироватьпроцессрассылкисообщений,причем
удовлетворитпрактическилюбыетребованиякСообщениям.Листинг4представляетмакрос,обеспечивающийсозданиеновогоднихпоздравленийдляКонтактов,укоторыхестьадресэлектронной почты. Нужно ли поздравлять? Безусловно, нужно. Все ли
поздравляют,например,своихклиентов?Конечно,нет—далеко
невсе. Это оченьважно.Почемунепоздравляют?Этовсе-таки
большаяработа.Еслиееделатьвручную.
Замысел макроса
Формируется стандартный текст новогоднего поздравле-1.
ния(строковаяпеременнаяLt).
Впапкепросматриваютсявсеконтакты(цикл2. For each…
Next).
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
