Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Управление в маркетинге средствами электронной почты. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
81
Select Case i Case 0 If infoArray(i) <> «Регистрация» Then MsgBox “Сообщение не подходит для регистрации”
Exit Sub End If
Case 1 iCn.CompanyName = infoArray(i) Case 2 MsgBox “Год поступления” & infoArray(i) Case 3 MsgBox «Факультет» & infoArray(i) Case 4 MsgBox «Форма обучения» & infoArray(i) Case 5 MsgBox «Специальность» & infoArray(i) Case 6 iCn.FullName = infoArray(i) Case 7 iCn.NickName = infoArray(i) Case Else
End Select Next i
iCn.Display
End Sub
а г 5. Ра б о т а С ф у н к ц и е й InSt r ()
Ш
Есливаудиторииприсутствуетбольше100человек,которымобъ­яснено,какимобразомнеобходимозаполнитьполеТема сообщения, тоэтоне значит, чтовы получите100правильнооформленныхСо- общений.Естьошибки,естьневнимательность,естьнеспособность работатьболееилименееорганизованно.Такилииначе,необходимо произвестиклассификациюСообщенийвпапкеВходящиена
спам;a) неправильно оформленныеb) Сообщения, которые нуж­даютсявуточнениях;
82
правильно оформленныеc) Сообщения, на основе которых необходимосоздатьКонтакты.
Первыедолжныбытьуничтожены.Вторыемогутбытьобра­ботанывручную,илииммогутбытьнаправленыПравила оформ- ленияСообщения.
ОпределитьпринадлежностьСообщениякодномуизуказан­ныхклассовможноиспользуястандартнуюфункциюVisualBasic
InStr().
Функциявозвращаетпозициювхожденияоднойстрокисим­воловвнутридругой.Описаниефункцииможнонайтивкнигах ГарнаеваиКузьменко[3: с. 252; 5:с.791]иливСправочной си- стеме VisualBasic.Синтаксисфункцииимеетследующийвид
Str([Start],String1,String2,Compare)
Start — необязательный аргумент, задающий начальную позициюдля поиска;по умолчаниюпоиск начинаетсяспервой позиции;аргументStartявляетсяобязательным,еслиуказывается аргументCompare;
String1—обязательныйаргумент,представляющийстро­ковоевыражение(строку),вкоторомвыполняетсяпоиск;
String2—обязательныйаргумент,представляющийстро­ковоевыражение,поискположениякотороговString1выполняет функция;
Compare—необязательныйаргумент,определяющийтип сравнениястрок. Еслиаргумент неопускается, тоиспользуется сравнениесогласнооператоруOption Compare.
Листинг 14 представляет макрос, иллюстрирующий работу функцииInStr().
Листинг 14. Работа функции InStr()
Sub InStrTest()
'отработка функции работы со строками 'состояние - рабочее Dim Предложение As String 'Строковая переменная Dim Слово As String 'Строковая переменная Dim Позиция 'Строковая переменная
Слово = «Регистрация» 'присваиваем строковой переменной значение
83
Предложение = «Регистрация; МИПП; 2002; эк; дн; мн; Андрей» 'Определяем место вхождения Слова в Предложение Позиция = InStr(Предложение, Слово) MsgBox «Позиция - « & Позиция
End Sub
Поэкспериментируйтесмакросом.Например,еслизапустить макрос на выполнение, то на экране появится Окно сообщения (рис24).
Рис. 24.ЭкспериментработысфункциейInStr()
ЕслижевначальныхусловияхпеременнойСлововместозна­чения«регистрация» присвоить значение «рация», тона экране появитсяОкно сообщения,представленноенарисунке25.
Рис. 25. ЭкспериментработысфункциейInStr()
Этоозначает,чтофункцияVisualBasicInStr()работаетвсоот­ветствиисееописанием.Вовсякомслучае,проведенныйэкспе­риментпозволяетнадеяться,чтонамудастсяопределитьналичие взаданнойстрокенеобходимогонамслова.
84
Несколькоусложнимзадачу.Предположим,чтодопускается наличиевстрокеоднойошибки.Тогдакобработкебудетприня­та строка,еслиправильно написано либослово «Регистрация», либоназваниевуза.Внашемслучаеэтоаббревиатурыназваний двух вузов: РГГУ и МИПП. Листинг 15 представляет макрос, определяющийпо заданномупредложениюегопринадлежность кзаданномуклассу.
Листинг 15. Определение режима регистрации Контакта Sub РежимРегистрации() 'состояние - рабочее Dim Предложение As String Dim Слово As String
Dim Registration
‘блок исходных данных Слово = “РГГУ” Предложение = _ “Регистрация; РГГУ; 2002; эк; дн; мн; Гончаров Андрей Николаевич; Андрей”
Select Case Слово Case “Регистрация” ‘случай правильно введенного слова ‘Регистрация Registration = InStr(Предложение, Слово) MsgBox “Правильно введенное слово - Регистрация”
Case “РГГУ” ‘случай правильно введенного слова РГГУ Registration = InStr(Предложение, Слово) MsgBox “Правильно введенное слово - РГГУ”
Case “МИПП” ‘случай правильно введенного слова МИПП Registration = InStr(Предложение, Слово) MsgBox “Правильно введенное слово - МИПП”
Case Else ‘случай отсутствия правильно введенных слов MsgBox “Предложение не содержит необходимых для Регистрации слов”
End Select
85
If Registration > 0 Then MsgBox «Будет зарегистрирован Контакт»
End Sub
Ш
а г 6. Ра б о т а ф у н к ц и и MS g Bo x ()
ВходящееСообщениеможетбытьлибоудалено,либовызвано намонитордляпрочтения,либооставленовпапкедляпоследую­щегопрочтения.Дляпринятиярешениявтакойситуацииможно использоватьфункциюMsgBox().Вмакросахдлявыводаинфор­мации нами достаточночасто использовался оператор MsgBox. НовVBAтакжесуществуетфункцияMsgBox(),котораявыводит наэкрандиалоговоеокно,содержащеесообщение,ачащевопрос, иоднуилинесколькокнопок.Пользователюнеобходимосделать выборнажатиемкнопки.Врезультатефункциявозвратитзначе­ниетипаInteger,указывающеенасделанныйвыбор.Листинг16 иллюстрируетработусфункцией.
Листинг 16. Работа с функцией MsgBox()
Sub tMsgBox()
Dim aOl As Outlook.Application Dim oNS As Outlook.NameSpace Dim cAL As Outlook.AddressLists Dim oAL As Outlook.AddressList
Dim i As Integer Dim iMsgbox As Integer
Set aOl = CreateObject(«Outlook.Application») Set oNS = aOl.Application.GetNamespace(«MAPI») Set cAL = oNS.AddressLists
For i = 1 To cAL.Count Set oAL = cAL.Item(i) MsgBox «Имя AddressList « & « is « & oAL.Name _ & vbCrLf & “ Номер - « & i & « of « & cAL.Count, vbInformation ‘операторы iMsgBox ... дают одинаковый результат, но второй много предпочтительнее ‘259 = 3 + 256; 3 — это кнопки Да - Нет - Отмена
86
‘256 определяет Нет как кнопку по умолчанию iMsgbox = MsgBox(“Удалить Сообщение - ?”, 259, vbDefaultButton2) iMsgbox = MsgBox(“Удалить Сообщение - ?”, vbYesNoCancel, vbDefaultButton2) MsgBox cAL.Item(i).Name
Select Case iMsgbox Case 6 'MsgBox «iMsgbox - « & iMsgbox & «Delete folder» Case 7 'MsgBox «iMsgbox - « & iMsgbox Case Else MsgBox «Case else»
End Select Next i End Sub
Синтаксисфункцииимеетследующийвид:
MsgBox(Prompt[,Buttons],[,Title],[,HelpFile,Context])
ФункцияMsgBox()имеетследующиеименованныеаргументы:
Prompt — обязательный аргумент, представляющий собой строку-вопросилистроку-сообщение.
Buttons— число, представляющее суммузначений,которое указываеттип отображаемыхкнопок,модальностьокна и кноп­купо умолчанию.Вмакросе Buttons =3+256.Этоможетбыть прочитаноследующимобразом:3означает,чтовокне Сообще- ния будут 3 кнопки Да, Нет, Отменить; 256 означает, что по умолчаниюбудетиспользоватьсявтораякнопка,т.е.кнопкаНет. Нов макросе приведени другойспособ решения задачи— ис­пользуетсяконстантаVisualBasicvbYesNoCancel.Использование константы,с нашей точки зрения, является предпочтительным, посколькупозволяетпрощепонятьсмысл.
Title—строкавзаголовкеокнаСообщения.
АргументыHelpFileиContextнамине использовались,поэ­томуониописыватьсянебудут.
87
Ша г 7. пР о в е Р к а а д Р е С а т а в п а п к е ко н т а к т ы
Посколькунеобходимокаквцеляхобеспечениябезопасности информационнойсистемы,такивцеляхэкономиивременизащи­щатьсяотспама,торазумноизбратьтакуюстратегию:
принимать к рассмотрению либо сообщения, соответ-−
ствующиекоторымКонтактыужесозданывпапкеКонтакты;
либо принимать к рассмотрению сообщения, соответ-− ствующиекоторымКонтактыотсутствуютвпапкеКонтакты, новихполеТема,содержитсястрока,анализкоторойпозволяет предполагать,чтонаосновеСообщениявпапкеконтактыдолжен бытьсоздансоответствующийКонтакт.
Листинг17представляетмакроспоискаКонтактапоадресу
электроннойпочтывпапкеКонтакты.
Листинг 17. Поиск Контактов Sub КонтактНайтиПоАдресу() 'Источник: Kent, page 63 Dim aOl As Outlook.Application Dim oNS As Outlook.NameSpace Dim oF As Outlook.MAPIFolder Dim cC As Items Dim iC As Outlook.ContactItem Dim strTemp As String ‘строка, которую необходимо найти среди свойств Контакта Set aOl = New Outlook.Application Set oNS = aOl.GetNamespace(«MAPI») Set oF = oNS.GetDefaultFolder(olFolderContacts) Set cC = oF.Items Set iC = cC.GetFirst Set iC = cC.Find(«[Email1Address]=»»james@mail.ru»»») If iC Is Nothing Then MsgBox «Contact is not found»
Exit Sub Else
iC.Display
End If End Sub
88
Ша г 8. об ъ е д и н е н и е Р а б о т а ю щ и х м а к Р о С о в
В принципе, с чего начатьобъединение,— дело вкуса. Но, видимо, все же имеет смысл в качестве базового выбрать Ли­стинг 13. Важно здесь то, что необходимоаккуратносохранять каждыйудачносделанныйшаг.
КонтактовВходящих
Другаяситуация. Несмотря на то, что правила регистрации подробнейшимобразомразъясняются,неменьше половины пи­семрегистрациисоставляютсятак,чтоавтоматически,сисполь­зованиемпрограммыихобработатьнеудается.Одинизспособов выйтиизположения,т.е.создатьправильныйКонтакт,состоит в следующем.Вам можетбыть понятным, что некоторые сооб­щения принадлежат студентам одной из учебных групп. Тогда необходимовыделитьэтисообщения, используямышьи клави­шуСtrl, и далеезапустить макрос СозданиеКонтактовповы­деленнымвходящим.ПосколькувыбудетевыделятьСообщения впапкеВходящие,этобудетозначать,чтоименноэлементыпапки Входящие будутпредставлятьсобойактивныйПроводник.
Листинг18представляетмакросдляавтоматизациипроцесса созданияКонтактовизвыбранныхвходящих.
Листинг 18. Создание Контактов из выбранных входящих sub CreateCnt() Dim aOl As Outlook.Application Dim oNS As Outlook.NameSpace Dim oFСnt As MAPIFolder 'объект - Contact Folder Dim oFInb As MAPIFolder 'папка входящие Dim cCnt As Outlook.Items ‘коллекция Контактов Dim cM As Items ‘коллекция Сообщений Dim iM As MailItem 'элемент Сообщение Dim iCnt As Outlook.ContactItem 'элемент Контакт Dim oE As Outlook.Explorer 'элемент Проводник Dim oS As Outlook.Selection 'объект - выделенные элементы Outlook
Dim ГодПоступления As String Dim Факультет As String
89
Dim Специальность As String Dim ФормаОбучения As String
ГодПоступления = “2001” Факультет = “эк” ‘экономический Специальность = “ФК” ‘Финансы и Кредит ФормаОбучения = «вч» 'вечерняя
Set aOl = New Outlook.Application Set oNS = aOl.GetNamespace(«MAPI») Set oFСnt = aOl.GetNamespace(«MAPI»).Folders(«Личные папки») .Folders(«Контакты») Set oFInb = aOl.GetNamespace(«MAPI»).Folders(«Личные папки») .Folders(«Входящие») Set cCnt = oFСnt.Items Set oE = aOl.ActiveExplorer 'объектной переменной присваивается значение ‘активного проводника Set oS = oE.Selection ‘объект - выделенные элементы
For Each iM In oS Set iCnt = cCnt.Add ' Set iCnt = aol.CreateItem(olContactItem) With iCnt .JobTitle = “МИПП” & “, “ & ГодПоступления & “, “ & Факультет _ & «, « & Специальность & «, « & ФормаОбучения .Email1Address = iM.SenderEmailAddress .Body = iM.Body & iM.Subject .Categories = «Студенты» .Save End With iM.Delete
Next End Sub
В создаваемом Контакте в поле Body перемещается ин-
формация из полей Subject и Body входящего Сообщения.
90
В последующем вручную придется «растащить» полученную информацию, в частности, перетащить мышью полное имя. ЕсливыимеетевозможностьсразуотредактироватьКонтакт, выиспользуетеметодDisplay.Этотвариант,конечно,предпо­чтительнее.Еслижеуваснетвозможностизавершитьработу посозданиюКонтактов,товы,используяметодSave,сохра­няетеКонтакт,оставляяокончательноередактированиенабо- леепозднеевремя.Есливыработаетесо стандартнойпапкой Контакты,тоновый Контактвы можете создать используя методCreateItem. Если же работаете с вложеннымипапками илипользовательскимиформами,тодлясозданияновогоКон-
тактанеобходимоиспользоватьметодAddобъектаКоллекция Контактов(cCnt). После создания Контактасоответствую-
щееемувходящееСообщениеудаляется.
Сделайтесебеобычнуювизитнуюкарточку.Еслинаобороте выприведетепример,вкакойформевыхотелибыполучитьсооб­щениеотвашегопотенциальногоклиента,томногиеиззаинтере­сованныхвсотрудничествесвамисогласятсяоблегчитьвамвашу информационнуюработу.
Заказ Тренингов
Интерфейс во многом определяет эффективность работы. Естественно,чтодлярешенияразличныхзадачнеобходимыраз­личныеинтерфейсы.Естественнотакже,чтоинтерфейсы долж­ны отвечать содержанию решаемых задач. Если вам необходи­мовнестиинформациюоКратком именичеловекаиегоАдресе
электронной почты,тоработатьсостандартной формой Outlook Контактынеудобно,потомучтополятелефоновиполеКраткое имянаходятсянаразныхвкладках,ивамвсякийразнеобходимо
будетосуществлятьпереходспомощьюмыши.Даибольшоеко­личествополейстандартнойформынесодействуетэффективной работе,потомучтовсякий разнеобходимоосуществлятьвыбор избольшогоколичества.
Есливамопределеннонеобходимо3или4элементаинформа­ции,тоследуетисоздаватьформу,котораябудетпозволятьопре-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]