Вы находитесь на странице: 1из 314

Õîðåâ Â. Ä.

Ñàìîó÷èòåëü ïðîãðàììèðîâàíèÿ íà VBA â Microsoft Office

Êèåâ “ÞÍÈÎД

2001

ББК 32.973–01

Х79

УДК 681.3.06

Хорев В.Д. Х79 Самоучитель программирования на VBA в Microsoft Office/. — К.:

Юниор, 2001. — 320 с., ил.

ISBN 966–7323–17–Х

Книга адресована широкому кругу пользователей Microsoft Office, версий 98, 2000 и XP, желающих автоматизировать свою работу при помощи Visual Basic for Application (VBA) и эффективных приемов работы в Microsoft Office. Данная книга является практическим руководством для пользователей любой квали- фикации, желающих самостоятельно научиться программировать на VBA. Каждая глава книги предлагает пользователю множество работающих рецептов для автоматизации со- временных задач в разных приложениях Microsoft Office, а приложение представляет со- бой краткий справочник по языку VBA, в котором теоретические сведения о языке умело переплетены с множеством примеров и практических советов. Седьмая глава и соответст- вующий раздел девятой главы являются обзорно-практическими по объектной модели Microsoft Office вцелом и отодельно по объектным моделям Word, Excel, Access и Outlook. Достоинством книги является всестороннее рассмотрение механизма взаимосвязи приложений Microsoft Office на основе использования объектных библиотек соответст- вующих приложений. Поседняя глава содержит бесценный материал по методам программирования в Microsoft Outlook. Это мало изученная область программирования умело раскрыта авто- ром на примере создания готового приложения в MS Excel.

ББК 32.973–01

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

ISBN 966–7323–17–Х

© ООО Юниор, 2001

Краткое оглавление

ÏÐÅÄÈÑËÎÂÈÅ 17

ÇÀ×ÅÌ ÝÒÀ ÊÍÈÃÀ

17

ÑÒÀÐÈÍÍÛÉ ÑÏÎÑÎÁ: “ÄÅËÀÉ, ÊÀÊ ß!”

17

Î

×ÅÌ ÝÒÀ ÊÍÈÃÀ

18

×ÒÎ ÏÎÒÐÅÁÓÅÒÑß ÄËß ÐÀÁÎÒÛ Ñ ÝÒÎÉ ÊÍÈÃÎÉ

18

Î

ÌÀÊÐÎÑÀÕ È ÌÀÊÐÎÂÈÐÓÑÀÕ

18

ÃËÀÂÀ 1. EXCEL: CÎÇÄÀÍÈÅ ÏÐÀÉÑ-ËÈÑÒÀ

21

×ÒÎ ÌÎÆÅÒ ÁÛÒÜ ÏÐÎÙÅ ÏÐßÌÎÓÃÎËÜÍÎÉ ÒÀÁËÈÖÛ?

21

ÊÀÊ ÎÒÄÅËÈÒÜ ÂÍÓÒÐÅÍÍÞÞ ÈÍÔÎÐÌÀÖÈÞ ÎÒ ÂÍÅØÍÅÉ ÈÍÔÎÐÌÀÖÈÈ

27

ÌÅÒÎÄÛ ÐÀÇÄÅËÅÍÈß ÈÍÔÎÐÌÀÖÈÈ ÍÀ ÂÍÓÒÐÅÍÍÞÞÈ ÂÍÅØÍÞÞ

30

VBA — ÝÒÎ Î×ÅÍÜ ÏÐÎÑÒÎ!

31

ÏÅÐÂÎÅ ÇÍÀÊÎÌÑÒÂÎ Ñ VISUAL BASIC

32

ÃÅÍÅÐÀÖÈß ÊËÈÅÍÒÑÊÎÃÎ ÏÐÀÉÑ-ËÈÑÒÀ

38

ÃËÀÂÀ 2. EXCEL: ÏÐÀÉÑ-ËÈÑÒ ÄËß ÀÂÒÎÌÀÒÈ×ÅÑÊÎÃÎ ÑÎÑÒÀÂËÅÍÈß ÇÀÊÀÇÀ

50

ÏÎÑÒÀÍÎÂÊÀ ÇÀÄÀ×È

50

ÂÛÁÎÐ ÍÀÈÌÅÍÎÂÀÍÈß ÈÇ ÑÏÈÑÊÀ

51

ÈÌÅÍÎÂÀÍÍÛÅ ÄÈÀÏÀÇÎÍÛ

51

ÏÎÑÒÐÎÅÍÈÅ ÁËÀÍÊÀ ÇÀÊÀÇÀ

53

ÐÅØÅÍÈÅ ÏÐÎÁËÅÌÛ ÑÎÂÌÅÑÒÈÌÎÑÒÈ ÂÛÁÈÐÀÅÌÛÕ ÓÑÒÐÎÉÑÒÂ ÊÎÌÏÜÞÒÅÐÀ

58

ÂÛÏÈØÈÒÅ Ñ×ÅÒ, ÏÎÆÀËÓÉÑÒÀ

59

ÏÎÑÒÀÍÎÂÊÀ ÇÀÄÀ×È

60

ÃËÀÂÀ 3. ÏÎÂÅÐÊÀ ÃÀÐÌÎÍÈÈ WORD ÀËÃÅÁÐÎÉ EXCEL 73

ÈÇ ÄÎÊÓÌÅÍÒÀ WORD Â ÒÀÁËÈÖÓ EXCEL

74

ÎÁÐÀÒÍÎ ÈÇ ÒÀÁËÈÖÛ EXCEL Â ÄÎÊÓÌÅÍÒ WORD

92

ÃËÀÂÀ 4. ÏÐÀÊÒÈÊÓÌ ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈß ÍÀ VBA ÄËß EXCEL È WORD102

ÑÓÌÌÀ ÏÐÎÏÈÑÜÞ

102

×ÀÑÒÎÒÍÛÉ ÑËÎÂÀÐÜ

112

ÑÐÀÂÍÈÒÅËÜÍÛÉ ÀÍÀËÈÇ ÏÐÀÉÑ-ËÈÑÒÎÂ

119

ÃËÀÂÀ 5. ACCESS: ÑÎÇÄÀÍÈÅ ÎÔÈÑÍÎÉ ÁÀÇÛ ÄÀÍÍÛÕ

131

ÑÎÇÄÀÍÈÅ ÁÀÇÛ ÄÀÍÍÛÕ MS ACCESS

131

ÑÎÇÄÀÍÈÅ ÒÀÁËÈÖ

131

ÂÂÎÄ ÄÀÍÍÛÕ Â ÁÀÇÓ ÄÀÍÍÛÕ ACCESS

139

ÑÎÇÄÀÍÈÅ ÝÊÐÀÍÍÛÕ ÔÎÐÌ

139

ÓÑÎÂÅÐØÅÍÑÒÂÓÅÌ ÔÎÐÌÓ ÏÐÈ ÏÎÌÎÙÈ VBA

145

ÃËÀÂÀ 6. ACCESS: ÀÂÒÎÌÀÒÈÇÀÖÈß ÎÔÈÑÍÎÉ ÁÀÇÛ ÄÀÍÍÛÕ 149

ÀÂÒÎÌÀÒÈÇÀÖÈß

ÂÂÎÄÀ ÄÀÍÍÛÕ

149

ÀÂÒÎÌÀÒÈÇÀÖÈß ÐÀÁÎÒÛ Ñ ÈÌÅÞÙÈÌÈÑß ÄÀÍÍÛÌÈ

154

4

Краткое оглавление

ÐÀÁÎÒÀ Ñ ÎÁÚÅÊÒÀÌÈ MS WORD

167

ÐÀÁÎÒÀ Ñ ÎÁÚÅÊÒÀÌÈ MS EXCEL

174

ÐÀÁÎÒÀ Ñ ÎÁÚÅÊÒÀÌÈ MS ACCESS

182

ÃËÀÂÀ 8. VBA-ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÅ: ÏÐÈÌÅÐÛ È ÈËËÞÑÒÐÀÖÈÈ

190

ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÅ ÎÁÚÅÊÒÎÂ ÈÍÒÅÃÐÈÐÎÂÀÍÍÎÉ ÑÐÅÄÛ MS OFFICE

191

ÔÎÐÌÀÒÈÐÎÂÀÍÈÅ ÎÁÚÅÊÒÎÂ ÏÐÈËÎÆÅÍÈÉ MS OFFICE

202

ÏÐÅÄÑÒÀÂËÅÍÈÅ ÄÀÍÍÛÕ Â MS OFFICE

210

ÃËÀÂÀ 9. ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÅ Â OUTLOOK: ÄÎÊÓÌÅÍÒÎÎÁÎÐÎÒ È ÝËÅÊÒÐÎÍÍÀß ÏÎ×ÒÀ

223

ÝËÅÊÒÐÎÍÍÀß ÏÎ×ÒÀ  ÑÎÂÐÅÌÅÍÍÎÌ ÎÔÈÑÅ

223

ÏÎÑÒÀÍÎÂÊÀ ÇÀÄÀ×È

223

ÎÁÚÅÊÒÍÀß ÌÎÄÅËÜ OUTLOOK 2000

224

ÑÎÇÄÀÍÈÅ Ó×ÅÒÍÛÕ ÇÀÏÈÑÅÉ

231

ÑÎÇÄÀÍÈÅ ÏÐÈËÎÆÅÍÈß REGISTRATOR

234

ÏÐÈËÎÆÅÍÈÅ. VBA, ÊÀÊ ßÇÛÊ ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈß: ÄÀÍÍÛÅ, ÑÈÍÒÀÊÑÈÑ È ÔÓÍÊÖÈÈ

262

ÄÀÍÍÛÅ VBA: ÒÈÏÛ ÄÀÍÍÛÕ, ÏÅÐÅÌÅÍÍÛÅ È ÊÎÍÑÒÀÍÒÛ

262

ÑÈÍÒÀÊÑÈ×ÅÑÊÈÅ ÊÎÍÑÒÐÓÊÖÈÈ ßÇÛÊÀ VBA

274

ÎÏÅÐÀÒÎÐÛ È ÂÑÒÐÎÅÍÍÛÅ ÔÓÍÊÖÈÈ ßÇÛÊÀ VBA

282

Оглавление

ÏÐÅÄÈÑËÎÂÈÅ 17

ÇÀ×ÅÌ ÝÒÀ ÊÍÈÃÀ ÑÒÀÐÈÍÍÛÉ ÑÏÎÑÎÁ: “ÄÅËÀÉ, ÊÀÊ ß!”

17

17

Î

×ÅÌ ÝÒÀ ÊÍÈÃÀ

18

×ÒÎ ÏÎÒÐÅÁÓÅÒÑß ÄËß ÐÀÁÎÒÛ Ñ ÝÒÎÉ ÊÍÈÃÎÉ

18

Î

ÌÀÊÐÎÑÀÕ È ÌÀÊÐÎÂÈÐÓÑÀÕ

18

Îïàñíû ëè ìàêðîñû? Ãäå îíè íàõîäÿòñÿ? Íàäî ëè áîÿòüñÿ ìàêðîñîâ? Óðîâíè áåçîïàñíîñòè â Office 2000

18

18

19

19

ÃËÀÂÀ 1

EXCEL: CÎÇÄÀÍÈÅ ÏÐÀÉÑ-ËÈÑÒÀ

21

×ÒÎ ÌÎÆÅÒ ÁÛÒÜ ÏÐÎÙÅ ÏÐßÌÎÓÃÎËÜÍÎÉ ÒÀÁËÈÖÛ?

21

 

Òîâàðû è öåíû “â ñòîëáèê” Êàê îòôîðìàòèðîâàòü ñòîëáåö äëÿ ââîäà äåíåæíûõ çíà÷åíèé Ñîçäàíèå çàãîëîâêà ðàçäåëà Ôîðìàòèðîâàíèå äèàïàçîíà ÿ÷ååê ïî îáðàçöó

21

22

23

23

Êàê ôîðìàòèðîâàòü ðàçäåë ïðè ïîìîùè êîìàíäû Ñïåöèàëüíàÿ âñòàâêà

24

Óäàëåíèå è âñòàâêà ñòðîê

25

Ìåõàíèçìîì ãðóïïèðîâàíèÿ äàííûõ

25

Êàê ãðóïïèðîâàòü äàííûå

25

Çàãîëîâîê ïðàéñ-ëèñòà

26

ÊÀÊ ÎÒÄÅËÈÒÜ ÂÍÓÒÐÅÍÍÞÞ ÈÍÔÎÐÌÀÖÈÞ ÎÒ ÂÍÅØÍÅÉ ÈÍÔÎÐÌÀÖÈÈ

27

Ïîñòàíîâêà çàäà÷è

27

Èìåíîâàííûå ÿ÷åéêè

28

Èñïîëüçîâàíèå ôîðìóë è àâòîçàïîëíåíèå ÿ÷ååê ôîðìóëàìè

29

Óñëîâíîå ôîðìàòèðîâàíèå ÿ÷ååê

29

Êàê ïðèìåíèòü ê ÿ÷åéêàì óñëîâíîå ôîðìàòèðîâàíèå

29

ÌÅÒÎÄÛ ÐÀÇÄÅËÅÍÈß ÈÍÔÎÐÌÀÖÈÈ ÍÀ ÂÍÓÒÐÅÍÍÞÞÈ ÂÍÅØÍÞÞ

30

Ñâÿçûâàíèå äàííûõ â Excel

31

Íåäîñòàòêè ñâÿçûâàíèÿ ëèñòîâ Excel

31

VBA — ÝÒÎ Î×ÅÍÜ ÏÐÎÑÒÎ!

31

ÏÅÐÂÎÅ ÇÍÀÊÎÌÑÒÂÎ Ñ VISUAL BASIC

32

Çàïóñê ðåäàêòîðà Visual Basic

32

Ñîçäàíèå ïðîöåäóðû VBA

32

Ââîä èñõîäíîãî òåêñòà ïðîöåäóðû

33

Âîçìîæíûå ïðîáëåìû è ìåòîäû èõ ðåøåíèÿ

34

Àíàëèç ñòàíäàðòíîé ïðîöåäóðû îáðàáîòêè ñîáûòèÿ — äâîéíîãî ùåë÷êà

ìûøüþ íà ÿ÷åéêå ëèñòà Excel

35

Åùå îäíî ñîáûòèå — åùå îäèí ìàëåíüêèé ìàêðîñ

36

Àâòîìàòè÷åñêîå âûäåëåíèå ïîçèöèé â ïðàéñå

Àíàëèç ñòàíäàðòíîé ïðîöåäóðû îáðàáîòêè ñîáûòèÿ — àêòèâèçàöèÿ ðàáî÷åãî ëèñòà Excel

37

38

6 Оглавление

Êàê ïîìåñòèòü íà ëèñò ýëåìåíò óïðàâëåíèÿ

39

Îñîáåííîñòè èçìåíåíèÿ ñâîéñòâ ýëåìåíòîâ óïðàâëÿþùèõ ðàáî÷èì ëèñòîì

40

Ïðîñòåéøèé âàðèàíò ïðîöåäóðû ãåíåðàöèè ïðàéñà

40

Àíàëèç ïðîöåäóðû ãåíåðàöèè ïðàéñà

41

Íåäîñòàòêè ïðîñòåéøå ïðîöåäóðû ãåíåðàöèè ïðàéñà

42

Óñîâåðøåíñòâîâàíèÿ ïðîöåäóðû ãåíåðàöèè ïðàéñà

42

Îãðàíè÷åíèå îáëàñòè êîïèðîâàíèÿ ÿ÷ååê

 

42

Èçìåíåíèå øèðèíû ÿ÷ååê è ñòîëáöîâ

43

Èçìåíåíèå

èìåíè ðàáî÷åãî

ëèñòà Excel

43

Òåñòèðîâàíèå ðàáîòû íîâîé ïðîöåäóðû ãåíåðàöèè ïðàéñà

43

Êîïèðîâàíèå ðåçóëüòàòîâ âû÷èñëåíèé ïî ôîðìóëàì è èõ ôîðìàòèðîâàíèÿ

44

Èñêëþ÷åíèå ïîâòîðåíèÿ èìåí ëèñòîâ ðàáî÷åé êíèãè

Excel

44

Ïîëíîöåííûé âàðèàíò ïðîöåäóðû ãåíåðàöèè ïðàéñà

Íåäîñòàòêè íîâîãî âàðèàíòà ïðîöåäóðû ãåíåðàöèè ïðàéñà

45

47

Îêîí÷àòåëüíûé âàðèàíò ïðîöåäóðû ãåíåðàöèè ïðàéñà

47

ÃËÀÂÀ 2

EXCEL: ÏÐÀÉÑ-ËÈÑÒ ÄËß ÀÂÒÎÌÀÒÈ×ÅÑÊÎÃÎ ÑÎÑÒÀÂËÅÍÈß ÇÀÊÀÇÀ

50

ÏÎÑÒÀÍÎÂÊÀ ÇÀÄÀ×È ÂÛÁÎÐ ÍÀÈÌÅÍÎÂÀÍÈß ÈÇ ÑÏÈÑÊÀ ÈÌÅÍÎÂÀÍÍÛÅ ÄÈÀÏÀÇÎÍÛ

50

51

51

Êàê ñîçäàòü èìåíîâàííûé äèàïàçîí

52

ÏÎÑÒÐÎÅÍÈÅ ÁËÀÍÊÀ ÇÀÊÀÇÀ

53

Êàê ñîçäàòü è íàñòðîèòü ýëåìåíò óïðàâëåíèÿ Ïîëå ñî ñïèñêîì Îïèñàíèå ðàáîòû ýëåìåíòà óïðàâëåíèÿ Ïîëå ñî ñïèñêîì Èñïîëüçîâàíèå ôóíêöèè ÈÍÄÅÊÑ() Ñîçäàíèå â áëàíêå çàêàçà “áåçâàðèàíòíûõ” ñòðîê Ïîäñ÷åò ñóììû çàêàçà

54

55

56

57

58

ÐÅØÅÍÈÅ ÏÐÎÁËÅÌÛ ÑÎÂÌÅÑÒÈÌÎÑÒÈ ÂÛÁÈÐÀÅÌÛÕ ÓÑÒÐÎÉÑÒÂ ÊÎÌÏÜÞÒÅÐÀ

58

Ïîñòàíîâêà çàäà÷è Ñîçäàíèå ïðîöåäóðû Ðàñêðñïèñîê2_Èçìåíåíèå()

58

58

ÂÛÏÈØÈÒÅ Ñ×ÅÒ, ÏÎÆÀËÓÉÑÒÀ… ÏÎÑÒÀÍÎÂÊÀ ÇÀÄÀ×È

59

60

Ýëåìåíò óïðàâëåíèÿ Êíîïêà

60

Ïåðâûé ñïîñîá ôîðìèðîâàíèÿ ñ÷åòà (èñïîëüçîâàíèå ìàêðîðåêîðäåðà). 60

Èñïîëüçîâàíèå ôóíêöèè ÑÅÃÎÄÍß()

61

Êàê çàïèñàòü ìàêðîñ ïðè ïîìîùè ìàêðîðåêîðäåðà

61

Àíàëèç êîäà àâòîìàòè÷åñêè ñîçäàííîãî ìàêðîñà

62

Âòîðîé ñïîñîá ôîðìèðîâàíèÿ ñ÷åòà (ìàêðîñ ëèñòà Excel ðàáîòàåò ñ

äîêóìåíòîì

Word)

63

Ïîñòàíîâêà

çàäà÷è

63

Ñîçäàíèå îáðàçöà ñ÷åòà â Word

64

Êàê âñòàâèòü ïîëÿ â äîêóìåíò Word

64

Ñîçäàíèå ìàêðîñà ðàáî÷åãî ëèñòà Excel äëÿ ðàáîòû ñ äîêóìåíòîì Word

65

Êàê çàäàòü ññûëêó íà áèáëèîòåêó îáúåêòîâ Word â ñðåäå MS Excel

66

Àíàëèç ïðîöåäóðû äëÿ ðàáîòû ñ äîêóìåíòîì Word

67

Ñîçäàíèå òàáëèöû â äîêóìåíòå Word è åå àâòîôîðìàòèðîâàíèå

68

Óñîâåðøåíñòâîâàíèÿ ìàêðîñà ðàáî÷åãî ëèñòà Excel äëÿ ðàáîòû ñ äîêóìåíòîì Word

69

Ñîçäàíèå äèàëîãîâîãî îêíà ïðè ïîìîùè ôóíêöèè MsgBox()

69

ÃËÀÂÀ 3

Оглавление 7

ÊÎÅ-×ÒÎ Î ÑÎÂÐÅÌÅÍÍÎÌ ÄÎÊÓÌÅÍÒÎÎÁÎÐÎÒÅ

73

ÈÇ ÄÎÊÓÌÅÍÒÀ WORD Â ÒÀÁËÈÖÓ EXCEL

74

Ïîñòàíîâêà çàäà÷è

74

Ïîäãîòîâêà òàáëèöû äîêóìåíòîâ

74

Ïðèâÿçêà ìàêðîñà ê êîìàíäå Word

75

Êàê çàìåíèòü êîìàíäó Word

Ñîçäàåì ìàêðîñ-àðõèâàðèóñ Word-äîêóìåíòîâ

75

77

Êàê çàäàòü ññûëêó íà áèáëèîòåêó îáúåêòîâ Excel â ñðåäå MS Word

78

Îïèñàíèå ðàáîòû ìàêðîñà-àðõèâàðèóñà Word-äîêóìåíòîâ

78

Àíàëèç êîäà äåéñòâóþùåé ìîäåëè àðõèâàðèóñà Word-äîêóìåíòîâ â Excel

79

Àâòîìàòè÷åñêîå îòîáðàæåíèå íà ýêðàíå áèáëèîòåêè îáúåêòîâ Excel

80

Îñâîáîæäåíèå ñèñòåìíîé ïàìÿòè êîìïüþòåðà

80

Óñîâåðøåíñòâîâàíèÿ äåéñòâóþùåé ìîäåëè äëÿ ñîçäàíèÿ ìàêðîñà- àðõèâàðèóñà Word-äîêóìåíòîâ

81

Àíàëèç ïåðâîãî ñëîâà Word-äîêóìåíòà

81

Ìàêðîñ-àðõèâàðèóñ àíàëèçèðóåò ñîäåðæèìîå Word-äîêóìåíòà

84

Ïîñòàíîâêà

çàäà÷è

84

Ðåàëèçàöèÿ ìåõàíèçìà àíàëèçà ñîäåðæèìîãî Word-äîêóìåíòà

85

Àíàëèç çíà÷åíèé ñëîâ â äîêóìåíòå Word

86

Ïîñòàíîâêà çàäà÷è

86

Àíàëèç ñëîâà Word-äîêóìåíòà

87

Ïîñèìâîëüíûé àíàëèç ñëîâ â äîêóìåíòå Word

88

Ïîñòàíîâêà çàäà÷è

88

Ïðèìåíåíèå ëîãè÷åñêîé îïåðàöèè Or (ëîãè÷åñêîå ÈËÈ)

88

Ïðèìåíåíèå ëîãè÷åñêîé îïåðàöèè And (ëîãè÷åñêîå È)

89

Óïðàâëåíèå îøèáêàìè âûïîëíåíèÿ ìàêðîñà

89

Óñîâåðøåíñòâîâàíèÿ àíàëèçàòîðà ñîäåðæèìîãî Word-äîêóìåíòà

92

Îïòèìèçàöèÿ êîäà àíàëèçàòîðà Word-äîêóìåíòà

92

ÎÁÐÀÒÍÎ ÈÇ ÒÀÁËÈÖÛ EXCEL Â ÄÎÊÓÌÅÍÒ WORD

92

Åùå îäíî “ñòðàøíîå” ñëîâî — OLE

93

Ïîñòàíîâêà çàäà÷è

93

Ïîäãîòîâêà òàáëèöû

93

Ñâÿçûâàíèå òàáëèöû ñ äîêóìåíòîì

95

Êàê ñâÿçàòü ÿ÷åéêó ðàáî÷åãî ëèñòà Excel ñ òåêñòîâîé ïîçèöèåé â äîêóìåíòå Word

95

È ñíîâà VBA

96

Ïîñòàíîâêà çàäà÷è

 

96

Ìàêðîñ, êîïèðóþùèé òåêóùóþ ñòðîêó â ñòðîêó 2

96

Åùå ïàðà ìàêðîñîâ, íåîáõîäèìûõ äëÿ àâòîìàòè÷åñêîãî îòêðûòèÿ è çàêðûòèÿ îêíà Word

97

Ïîñòàíîâêà çàäà÷è

97

Îáðàáîò÷èê ñîáûòèÿ ðàáî÷åãî ëèñòà Activate

98

Îáðàáîò÷èê

ñîáûòèÿ

ðàáî÷åãî

ëèñòà Deactivate

98

ÃËÀÂÀ 4

ÏÐÀÊÒÈÊÓÌ ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈß ÍÀ VBA ÄËß EXCEL È WORD

102

ÑÓÌÌÀ ÏÐÎÏÈÑÜÞ

102

Ìîäóëè Visual

Basic

102

Êàê äîáàâèòü ê ðàáî÷åé êíèãå Excel ïðîãðàììíûé ìîäóëü

102

Ôóíêöèè

103

Ïîñòàíîâêà çàäà÷è

103

Êàê äîáàâèòü â ìîäóëü ïðîöåäóðó-ôóíêöèþ

Ðàçðàáàòûâàåì èñõîäíûé òåêñò ôóíêöèè Ñóììà_ïðîïèñüþ()

103

104

Èñïîëüçîâàíèå ôóíêöèè FORMAT () äëÿ ïðåîáðàçîâàíèÿ ÷èñëà â ñòðîêó

104

Àíàëèç òåêñòîâîé ñòðîêè

105

Èñïîëüçîâàíèå ôóíêöèè Ñóììà_ïðîïèñüþ()

Ñîçäàíèå ïðîöåäóðû-îáðàáîò÷èêà ñîáûòèÿ Change äëÿ ëèñòà ðàáî÷åé êíèãè Excel

110

110

8 Оглавление

Çàùèòà îò âîçíèêíîâåíèÿ êàñêàäíûõ ñîáûòèé

111

×ÀÑÒÎÒÍÛÉ ÑËÎÂÀÐÜ

112

Ïîñòàíîâêà çàäà÷è

112

Ðàçðàáàòûâàåì èñõîäíûé òåêñò ìàêðîñà

112

Èñïîëüçîâàíèå ìàññèâîâ

112

Îáúÿâëåíèå êîíñòàíò

112

Ñîçäàíèå Word-äîêóìåíòîâ è íîâûõ àáçàöåâ â íèõ ïðè ïîìîùè ìåòîäà Add

115

Óïîðÿäî÷èâàíèå ýëåìåíòîâ ìàññèâà ïî óáûâàíèþ

115

Ïðåîáðàçîâàíèå ñòðîê Word-äîêóìåíòà â òàáëèöó ïðè ïîìîùè ìåòîäà ConvertToTable

116

Àâòîôîðìàò òàáëèöû

116

Èñïîëüçîâàíèå ïðîöåäóðû ×àñòîòíûé_ñëîâàðü

119

ÑÐÀÂÍÈÒÅËÜÍÛÉ ÀÍÀËÈÇ ÏÐÀÉÑ-ËÈÑÒÎÂ

119

Âõîäÿùèå ïðàéñ-ëèñòû

120

Ïîñòàíîâêà çàäà÷è

120

Ñâîäíûé ïðàéñ-ëèñò

121

Ïîäêëþ÷åíèå àíàëèçèðóåìûõ ïðàéñ-ëèñòîâ

121

Ïîäãîòîâêà ðàáî÷åãî ëèñòà äëÿ ñâîäíîãî ïðàéñà

122

Ñîçäàíèå ïðîöåäóðû Ñâîäêà()

Àâòîìàòè÷åñêîå çàêðûòèå ôàéëà ñ îòìåíîé ñäåëàííûõ â íåì èçìåíåíèé

123

125

Îñîáåííîñòè èñõîäíûõ äàííûõ èç ñðàâíèâàåìûõ ïðàéñ ëèñòîâ

128

ÃËÀÂÀ 5

ACCESS: ÑÎÇÄÀÍÈÅ ÎÔÈÑÍÎÉ ÁÀÇÛ ÄÀÍÍÛÕ

131

ÑÎÇÄÀÍÈÅ ÁÀÇÛ ÄÀÍÍÛÕ MS ACCESS ÑÎÇÄÀÍÈÅ ÒÀÁËÈÖ

131

131

Âñïîìîãàòåëüíûå òàáëèöûñïðàâî÷íèêè

132

Ñîçäàíèå ñïðàâî÷íèêà êëèåíòîâ ôèðìû

132

Êàê ñîçäàòü òàáëèöó â ðåæèìå êîíñòðóêòîðà

132

Ñîçäàíèå ñïðàâî÷íèêà îáðàùåíèé ê êëèåíòàì ôèðìû

134

Òàáëèöà “Êëèåíòû”

134

Ïîäñòàíîâî÷íûå ïîëÿ

135

Êàê ñîçäàòü ïîäñòàíîâî÷íûå ïîëÿ ïðè ïîìîùè Ìàñòåðà ïîäñòàíîâîê

135

Òàáëèöà “Îïåðàöèè”

137

Ñîçäàíèå ñïðàâî÷íèêà òèïîâ îïåðàöèé

137

Ñîçäàíèå òàáëèöû îïåðàöèé

138

ÂÂÎÄ ÄÀÍÍÛÕ Â ÁÀÇÓ ÄÀÍÍÛÕ ACCESS

139

ÑÎÇÄÀÍÈÅ ÝÊÐÀÍÍÛÕ ÔÎÐÌ

139

Ôîðìà “Âñå îïåðàöèè”

139

Êàê ñîçäàòü ýêðàííóþ ôîðìó ïðè ïîìîùè Ìàñòåðà ôîðì

139

Ââîä äàííûõ ïðè ïîìîùè ôîðìû “Âñå îïåðàöèè”

140

Ïîä÷èíåííàÿ ôîðìà “Îïåðàöèè ïî êëèåíòó”

140

Ôîðìà “Êëèåíòû”

141

Ñîçäàíèå ïðîñòîé ôîðìû

141

Äîáàâëåíèå ïîä÷èíåííîé ôîðìû

141

Êàê

ñîçäàòü ïîä÷èíåííóþ ôîðìó ïðè ïîìîùè Ìàñòåðà ïîä÷èíåííûõ ôîðì

143

Êàê çàïðåòèòü èçìåíåíèå äàííûõ, îòîáðàæàåìûõ ôîðìîé

144

ÓÑÎÂÅÐØÅÍÑÒÂÓÅÌ ÔÎÐÌÓ ÏÐÈ ÏÎÌÎÙÈ VBA

145

Àâòîìàòè÷åñêîå çàïîëíåíèå ïîëÿ Ñêèäêà

145

Ïîñòàíîâêà çàäà÷è

145

Êàê ñîçäàòü ïðîöåäóðó îáðàáîòêè ñîáûòèÿ äëÿ ýëåìåíòà ýêðàííîé ôîðìû

146

À ó âàñ ñåãîäíÿ äåíü ðîæäåíèÿ!

147

Ïîñòàíîâêà çàäà÷è

147

Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ Current

147

Èñïîëüçîâàíèå ôóíêöèé Month() è Day()

147

ÃËÀÂÀ 6

Оглавление 9

ACCESS: ÀÂÒÎÌÀÒÈÇÀÖÈß ÎÔÈÑÍÎÉ ÁÀÇÛ ÄÀÍÍÛÕ

149

ÀÂÒÎÌÀÒÈÇÀÖÈß ÂÂÎÄÀ ÄÀÍÍÛÕ

149

Ïîñòàíîâêà çàäà÷è

149

Ïîäãîòîâêà ðàáî÷åãî ëèñòà

150

Ññûëêà íà áèáëèîòåêó îáúåêòîâ MS Access

151

Èñõîäíûé òåêñò ìàêðîñà, çàïèñûâàþùåãî îïåðàöèþ â áàçó äàííûõ Access

151

Àíàëèç ïðîöåäóðû Çàïèñü_îïåðàöèè

152

Îáúåêòû MS Access

152

Èñïîëüçîâàíèå îáúåêòà DoCmd äëÿ îòêðûòèÿ ôîðìû

153

Ñîçäàíèå íîâîé çàïèñè è ïåðåõîä íà íåå

153

ÀÂÒÎÌÀÒÈÇÀÖÈß ÐÀÁÎÒÛ Ñ ÈÌÅÞÙÈÌÈÑß ÄÀÍÍÛÌÈ

154

Ñîçäàíèå ïðîãðàììíîãî ìîäóëÿ â ñîñòàâå áàçû äàííûõ

154

Ññûëêè íà áèáëèîòåêè îáúåêòîâ: DAO èëè ADO?

156

Ôóíêöèÿ “Àíàëèç áàëàíñà ïî êëèåíòó”

156

Ïðîñìîòð çàïèñåé òàáëèöû Access ïðè ïîìîùè öèêëà Do While…Loop

157

Ñîçäàíèå SQL-çàïðîñà

158

Èñïîëüçîâàíèå ôóíêöèè MsgBox() äëÿ îðãàíèçàöèè èíòåðôåñà, ïðåäîñòàâëÿþùåãî ïîëüçîâàòåëþ âûáîðî÷íî óïðàâëÿòü âûïîëíåíèåì ïðîãðàììû

159

Ïðèíÿòèå ðåøåíèÿ ïî ðåçóëüòàòàì àíàëèçà äàííûõ

160

Èñïîëüçîâàíèå îáúåêòîâ Word äëÿ ôîðìèðîâàíèÿ ïèñüìà èç äàííûõ òàáëèöû Access

160

Îáúåêòû òèïà LetterContent

160

Ïîñòàíîâêà çàäà÷è

161

Àâòîìàòè÷åñêàÿ ãåíåðàöèÿ ïèñüìà êëèåíòó

161

Ïðîãðàììíûé êîä ôóíêöèè Àíàëèç_áàëàíñà

ÃËÀÂÀ 7

163

 ÌÈÐÅ ÎÁÚÅÊÒΠMS OFFICE 167

ÐÀÁÎÒÀ Ñ ÎÁÚÅÊÒÀÌÈ MS WORD

167

Ðàáîòà ñ îáúåêòàìè Word íà óðîâíå ïðèëîæåíèÿ è äîêóìåíòà

167

Îáúåêò Application

167

Ñâîéñòâî Caption

 

167

Ñâîéñòâà ActiveWindow, ActiveDocument è ActivePrinter

167

Ñåìåéñòâî CommandBars

168

Ñâîéñòâà DisplayScrollBars è DisplayStatusBar

168

Îáúåêò Options

168

Ñâîéñòâî AllowDragAndDrop: óïðàâëåíèå ðåæèìîì ïåðåòàñêèâàíèÿ òåêñòà â ðåæèìå Ïðàâêà

168

Ñâîéñòâî SaveInterval: çàäàíèå èíòåðâàëà àâòîñîõðàíåíèÿ

168

Ñâîéñòâî StatusBar

168

Ìåòîä Quit

168

Ñåìåéñòâî Documents

168

Ìåòîä Add

169

Ìåòîä Open

169

Ìåòîäû Close è Activate

169

Îáúåêòû ActiveDocument è ThisDocument

169

Ìåòîä PrintOut: ïå÷àòü äîêóìåíòà

169

Ìåòîä SendMail: îòïðàâêà äîêóìåíòà ïî ýëåêòðîííîé ïî÷òå, êàê âëîæåíèå

169

Ìåòîä Close

169

Ìåòîäû Save è SaveAs

170

10 Оглавление

Ñâîéñòâî Bold: âûäåëåíèå äèàïàçîíà ïîëóæèðíûì íà÷åðòàíèåì åãî ñèìâîëîâ

170

Ñâîéñòâî InsertBefore: âñòàâêà ñòðîêè

170

Ïðîâåðêà ïðàâîïèñàíèÿ

170

Çàäàíèå âåðõíåãî êîëîíòèòóëà

171

Ñåìåéñòâà Paragraphs, Sentences, Words è Characters

171

Ñâîéñòâà First è Last

171

Ñâîéñòâà Count

171

Ñâîéñòâî Alignment

171

Ñîçäàíèå âîêðóã àáçàöà ðàìêó çàäàííîãî ñòèëÿ

171

Âñòàâêà òåêñòà ïîñëå çàäàííîãî àáçàöà

171

Èçìåíåíèå ôîíà àáçàöà

171

Èçìåíåíèå ñòèëÿ àáçàöà

171

Èçìåíåíèå ñòèëÿ àáçàöà

171

Ïåðåìåùåíèå ïî òåêñòó

172

Ìåòîä Delete

172

Ïðåîáðàçîâàíèå ñèìâîëîâ â âåðõíèé ðåãèñòð

172

Ñåìåéñòâî StoryRanges

172

Ðàáîòà ñî ñïèñêàìè è òàáëèöàìè äîêóìåíòà Word

172

Word-òàáëèöû

172

Óïðàâëåíèå ãðàíèöàìè òàáëèö

172

Óäàëåíèå ñòîëáöà òàáëèöû

172

Èçìåíåíèå ôîíà òàáëèöû

173

Ñîçäàíèå òàáëèöû

173

Àâòîôîðìàò òàáëèöû

173

Çàïèñü â ÿ÷åéêè òàáëèöû äàííûõ

173

Èçìåíåíèå øèðèíû ñòîëáöîâ òàáëèöû

173

Âûðàâíèâàíèå òåêñòà â òàáëèöå

173

Äîáàâëåíèå çàãîëîâêà òàáëèöû

173

Àâòîñóììèðîâàíèå ÿ÷ååê òàáëèöû

173

Ðàçáèåíèå ÿ÷ååê òàáëèöû

174

Word-ñïèñêè

174

Îáúåêò ListFormat

174

ÐÀÁÎÒÀ Ñ ÎÁÚÅÊÒÀÌÈ MS EXCEL

174

Ðàáîòà ñ îáúåêòàìè Excel íà óðîâíå ïðèëîæåíèÿ, ðàáî÷åé êíèãè è ëèñòà

175

Îáúåêò Application

175

Ñâîéñòâà Workbooks, ActiveWorkbook è ThisWorkbook

175

 

Ìåòîä SaveAs

175

Ìåòîä

Activate

175

Ìåòîä Close

175

Ìåòîä Open

175

Ñâîéñòâî ActiveSheet

175

Ñâîéñòâî Name

176

Ñâîéñòâî DisplayScrollBars: ïðèìåð ñîêðûòèÿ ïîëîñ ïðîêðóòêè

176

Ñâîéñòâî

StatusBar

176

Óâåëè÷èòü ìàñøòàá àêòèâíîãî îêíà

176

Ñâîéñòâî FixedDecimal

176

Ìåòîä Calculate

176

Ñåìåéñòâî Sheets

176

Ìåòîä Add

176

Âñòàâêà ëèñòà äèàãðàììû

177

Ìåòîä Delete

177

Ñâîéñòâî Visible

177

Ìåòîä Move

177

Ìåòîä Copy

177

Ìåòîä Quit

Ðàáîòà ñ ñîäåðæèìûì ðàáî÷åãî ëèñòà

177

177

Îáúåêò Range

177

Çàäàíèå äèàïàçîíà

177

Ñâîéñòâî Offset

178

Ñâîéñòâî Cells

178

Оглавление 11

Ñâîéñòâî EntireColumn

178

Ñâîéñòâî EntireRow

178

Ñâîéñòâî UsedRange

179

Óäàëåíèå äèàïàçîíà ñî ñäâèãîì îñòàâøèõñÿ ÿ÷ååê âëåâî

179

Ìåòîä Insert: ïðèìåð âñòàâêè äèàïàçîíà ñî ñäâèãîì îñòàâøèõñÿ ÿ÷ååê âïðàâî

179

Äîñòóï ê ñîäåðæèìîìó ÿ÷ååê è äèàïàçîíîâ

179

Çàïèñü â ÿ÷ååêó çíà÷åíèÿ

179

Ñâîéñòâî Formula

179

Ñâîéñòâî FormulaLocal

179

Ñòèëü ññûëîê R1C1

180

Ñâîéñòâî

FormulaHidden

180

Ñâîéñòâî Value

180

Ìåòîä AutoFill: àâòîçàïîëíåíèå äèàïàçîíà

180

Ôîðìàòèðîâàíèå ÿ÷ååê

180

Ñâîéñòâî ColumnWidth

180

Ñâîéñòâî RowHeight

180

Ñâîéñòâî

Font

180

Ñâîéñòâà Bold, Shadow, Name è Size

181

Îáúåêò Interior

181

Ñâîéñòâî Locked

181

Ñâîéñòâî Style

181

Î÷èñòêà äèàïàçîíà

181

Îáúåêò Characters

181

ÐÀÁÎÒÀ Ñ ÎÁÚÅÊÒÀÌÈ MS ACCESS

182

Ðàáîòà ñî ñòðóêòóðîé áàçû äàííûõ Access

182

Îáúåêòû Database (áàçà äàííûõ), TableDef (îïðåäåëåíèå òàáëèöû) è ñåìåéñòâî Field (ïîëÿ òàáëèöû)

182

Îáúÿâëåíèå ïåðåìåííûõ òèïà áàçà äàííûõ, îïðåäåëåíèå òàáëèöû è ïîëå òàáëèöû

182

Ìåòîä OpenDatabase: îòêðûòèå áàçû äàííûõ

182

Ìåòîä CreateField îáúåêòà TableDef: äîáàâëåíèå òåêñòîâîãî ïîëÿ

182

Ìåòîä Append

183

Ìåòîä Close: çàêðûòèå áàçû äàííûõ

183

Ìåòîä CreateTable: ñîçäàíèå òàáëèöû

183

Ñâîéñòâà ïîëåé

184

Ââîä â ïîëå òàáëèöû çíà÷åíèÿ ïî óìîë÷àíèþ (DefaultValue)

184

Ñâîéñòâî Required: ïðîâåðêà äîïóñòèìûõ çíà÷åíèé ââîäèìûõ â ïîëå

184

Ñâîéñòâî Type: òèï äàííûõ

184

Ñâîéñòâî FieldSize: ðàçìåð ïîëÿ

184

Êîíñòàíòû òèïà äàííûõ ïîëÿ

184

Ðàáîòà ñ ñîäåðæèìûì áàçû äàííûõ Access

184

Îáúåêò DoCmd

185

Ìåòîä OpenTable: îòêðûòèå òàáëèöû

185

Ìåòîä OutputTo: âûâîä òàáëèöû

185

Ìåòîä PrintOut: ïå÷àòü òàáëèöû

185

Ìåòîä OpenForm: îòêðûòèå ôîðìû

185

Ìåòîä Maximize: ðàçâåðíóòü ôîðìó

185

Ìåòîä Maximize: ñâåðíóòü ôîðìó äî çíà÷êà

185

Ìåòîä GoToRecord: íàâèãàöèÿ ôîðìû

185

Ìåòîä GoToControl: ïåðåäà÷à ôîêóñà ýëåìåíòó óïðàâëåíèÿ ôîðìû

185

Ñâîéñòâî AllowDeletions: çàïðåò óäàëåíèÿ çàïèñåé ïîëüçîâàòåëåì

186

Ñâîéñòâî AllowEdits: çàïðåò èçìåíåíèÿ çàïèñåé

186

Ñâîéñòâà ôîðìû

186

Ñåìåéñòâî Controls

186

Ñâîéñòâî CurrentRecord

186

Ñâîéñòâî Dirty

186

Ñâîéñòâà FilterOn è Filter

187

Ñâîéñòâî NavigationButtons

187

Ñåìåéñòâî Forms

187

Ìåòîä Quit: çàêðûòèå áàçû äàííûõ

188

ÃËÀÂÀ 8

12 Оглавление

VBA-ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÅ: ÏÐÈÌÅÐÛ È ÈËËÞÑÒÐÀÖÈÈ

190

ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÅ ÎÁÚÅÊÒÎÂ ÈÍÒÅÃÐÈÐÎÂÀÍÍÎÉ ÑÐÅÄÛ MS OFFICE

191

Ïàíåëè èíñòðóìåíòîâ è ìåíþ â ïðèëîæåíèÿõ MS Office

191

Îáúåêòû òèïà CommandBar

191

Îáúåêòû òèïà CommandBarControl

191

Ìåòîä FindControl: ïîèñê ýëåìåíòà óïðàâëåíèÿ

191

Ñâîéñòâî FaceId: èçìåíåíèå çíà÷êà íà ýëåìåíòå óïðàâëåíèÿ

192

Ñîçäàíèå ïîëüçîâàòåëüñêîé ïàíåëè èíñòðóìåíòîâ

192

Ìåòîä Add

192

Ñâîéñòâî Visible

192

Ñîçäàíèå íîâîé êíîïêè

193

Ñîçäàíèå ïîëüçîâàòåëüñêîãî ìåíþ

194

Äîáàâëåíèå ïîëüçîâàòåëüñêîé êîìàíäû â ñòàíäàðòíîå ìåíþ ïðèëîæåíèÿ MS Office

196

Ïðîãðàììèðîâàíèå ïîìîùíèêà Office

197

Îáúåêò Assistant

198

Îáðàáîòêà îøèáîê ñ èñïîëüçîâàíèåì îïåðàòîðà On Error GoTo

198

Ñîçäàíèå ïîëüçîâàòåëüñêîé Ñïðàâêè

198

Ïåðåìåííàÿ òèïà Balloon

199

Ñâîéñòâî Visible

199

Ñâîéñòâî

Animation

199

Ìåòîä NewBalloon

199

Ñâîéñòâà

Heading è Text

199

Ñâîéñòâî Button

199

Ñâîéñòâî Labels

200

Ìåòîä Show

200

Ðåàêöèÿ ïîìîùíèêà íà âûáîð ïîëüçîâàòåëÿ

201

ÔÎÐÌÀÒÈÐÎÂÀÍÈÅ ÎÁÚÅÊÒÎÂ ÏÐÈËÎÆÅÍÈÉ MS OFFICE

202

Ïðèìåð ôîðìàòèðîâàíèÿ äîêóìåíòà Word

203

Ôîðìàòèðîâàíèå àáçàöà

203

Èñïîëüçîâàíèå êîíñòàíòû vbCr

203

Èñïîëüçîâàíèå ìåòîäà InsertBefore

204

Ñâîéñòâî Content

204

Ñâîéñòâî Style

204

Çàãîëîâîê ñîîáùåíèÿ

204

Ïðîñòîé òåêñò

205

Ñïèñêè

205

Ïîäïèñü

205

Èçìåíåíèå ðàçìåðà øðèôòà

205

Îáùèé âèä äîêóìåíòà: ïðèìåð èçìåíåíèÿ ãðàíèö äîêóìåíòà (ðàçäåëà)

206

Ñâîéñòâî ArtStyle: õóäîæåñòâåííûé ñòèëü ãðàíèöû

207

Ñâîéñòâîì ArtWidth: øèðèíà ãðàíèöû

207

Ãðàíèöû àáçàöà

207

Ñâîéñòâî SpaceAfter: îòñòóï ñíèçó

208

Ñâîéñòâî Alignment: ïðèìåð âûðàâíèâàíèÿ àáçàöà ñëåâà

208

Ôîðìàòèðîâàíèå ãðàôè÷åñêèõ îáúåêòîâ (ñåìåéñòâî Shapes)

208

Ìåòîä AddShape

208

Íàäïèñü íà àâòîôèãóðå

209

Ôîðìàòèðîâàíèå äîêóìåíòà ïîñðåäñòâîì òåì

209

Ìåòîä ApplyTheme

210

ÏÐÅÄÑÒÀÂËÅÍÈÅ ÄÀÍÍÛÕ Â MS OFFICE

210

Ïîäãîòîâêà òàáëè÷íûõ äàííûõ

210

Óñëîâíûå ôîðìàòû

211

Ïîñòàíîâêà çàäà÷è

211

Îïðåäåëåíèå äèàïàçîíà óñëîâíîãî ôîðìàòèðîâàíèÿ

211

Îáúåêò FormatCondition

211

Ìåòîä Add: äîáàâëåíèå óñëîâíîãî ôîðìàòà

212

Ôîðìàòèðîâàíèå äàííûõ óäîâëåòâîðÿþùèõ óñëîâèþ

212

Äîáàâëåíèå âòîðîãî óñëîâíîãî ôîðìàòà

212

Оглавление 13

Äèàãðàììû

214

Îáúåêò ChartObject: âñòàâêà äèàãðàììû íà ëèñò Excel

214

Ìåòîä SetSourceData: ñîçäàíèå îáû÷íîé ãèñòîãðàììû

215

Ñâîéñòâî HasLegend

216

Ñâîéñòâî ChartType: çàäàíèå òèïà äèàãðàììû

216

Ìåòîä ApplyCustomType: ñîçäàíèå ïîëüçîâàòåëüñêîãî òèïà äèàãðàìì

217

Ñâîéñòâî HasTitle: ñîçäàíèå çàãîëîâêà äèàãðàììû

218

Ñâîéñòâî ChartTitle

218

Ñåìåéñòâî Axes: ôîðìàòèðîâàíèå îñåé äèàãðàììû

219

Ïðèìåðû ôîðìàòèðîâàíèÿ äèàãðàìì

219

Ñâîéñòâà HasTitle è AxisTitle: ñîçäàíèå çàãîëîâêîâ îñåé äèàãðàììû

219

Ñâîéñòâà Elevation, Rotation è Perspective: ïîâîðîò äèàãðàììû âîêðóã îñåé 220

221

Èçìåíåíèå çàëèâêè îáëàñòè äèàãðàììû

ÃËÀÂÀ 9

ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÅ Â OUTLOOK: ÄÎÊÓÌÅÍÒÎÎÁÎÐÎÒ È ÝËÅÊÒÐÎÍÍÀß

ÏÎ×ÒÀ

223

ÝËÅÊÒÐÎÍÍÀß ÏÎ×ÒÀ  ÑÎÂÐÅÌÅÍÍÎÌ ÎÔÈÑÅ

223

ÏÎÑÒÀÍÎÂÊÀ ÇÀÄÀ×È

223

ÎÁÚÅÊÒÍÀß ÌÎÄÅËÜ OUTLOOK 2000

224

Êëàññû è îáúåêòû

225

Áèáëèîòåêè òèïîâ

225

Êàê ïîäêëþ÷èòü ê Excel áèáëèîòåêó òèïîâ Outlook

Íàçíà÷åíèå è îñíîâíûå ñâîéñòâà íåêîòîðûõ êëàññîâ Outlook

225

227

Êëàññ Application

228

Êëàññ NameSpace

228

Êëàññ SyncObject

229

Êëàññ Explorer

229

Êëàññ MAPIFolder

230

Êëàññ MailItem

230

ÑÎÇÄÀÍÈÅ Ó×ÅÒÍÛÕ ÇÀÏÈÑÅÉ

231

ÑÎÇÄÀÍÈÅ ÏÐÈËÎÆÅÍÈß REGISTRATOR

234

Ñîçäàíèå çàãîòîâêè ïðèëîæåíèÿ

235

Èçìåíåíèå èìåíè ëèñòà

235

Ñîçäàíèå ýëåìåíòà óïðàâëåíèÿ Êíîïêà

235

Ñîçäàíèå çàãîòîâêè ìàêðîñà, ñâÿçàííîãî ñ êíîïêîé

235

Ñîçäàíèå ìîäóëåé, êëàññîâ è ôîðì, è èçìåíåíèå èõ ñâîéñòâ

235

Èçìåíåíèå ñâîéñòâ êíîïêè íà ðàáî÷åì ëèñòå Excel

237

Îïðåäåëåíèå ïðîãðàììíûõ ýëåìåíòîâ

Àíàëèç îáúÿâëåííûõ ïðîãðàììíûõ ýëåìåíòîâ

Ðàçðàáîòêà ñõåìû ïðèëîæåíèÿ

Êîìïèëÿöèÿ ïðîåêòà è çàïóñê åãî íà âûïîëíåíèå

Íàïèñàíèå ïðîãðàììíîãî êîäà

237

239

239

242

243

Èíèöèàëèçàöèÿ è äåèíèöèàëèçàöèÿ

243

Ñèíõðîíèçàöèÿ

243

Îïðåäåëåíèå íóæíîãî èíòåðâàëà è ñîçäàíèå íîâîãî ëèñòà

247

Êëþ÷åâàÿ ïðîöåäóðà ïðèëîæåíèÿ — âûáîðêà âõîäÿùèõ è èñõîäÿùèõ ïèñåì

250

Äîâîäêà ïðèëîæåíèÿ Registration äî ïðîôåññèîíàëüíîãî óðîâíÿ

254

Äîâîäêà è ñîâåðøåíñòâîâàíèå

ÏÐÈËÎÆÅÍÈÅ

ïðèëîæåíèÿ

259

VBA, ÊÀÊ ßÇÛÊ ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈß: ÄÀÍÍÛÅ, ÑÈÍÒÀÊÑÈÑ È ÔÓÍÊÖÈÈ

 

262

ÄÀÍÍÛÅ VBA: ÒÈÏÛ ÄÀÍÍÛÕ, ÏÅÐÅÌÅÍÍÛÅ È ÊÎÍÑÒÀÍÒÛ

262

Ïåðåìåííûå è êîíñòàíòû

263

Êîíñòàíòû

263

Îáúÿâëåíèå êîíñòàíò

263

14 Оглавление

Ïåðåìåííûå

264

Îáúÿâëåíèå ïåðåìåííûõ

264

Èíèöèàëèçàöèÿ ïåðåìåííûõ

264

Çà÷åì îáúÿâëÿòü ïåðåìåííûå?

264

Äèðåêòèâà Option Explicit

265

Îáëàñòü âèäèìîñòè è âðåìÿ æèçíè ïåðåìåííûõ

266

Ìàññèâû

267

Äèíàìè÷åñêèå ìàññèâû

267

Îáúåêòíûå ïåðåìåííûå

268

Òèïû äàííûõ

269

Çà÷åì íóæíî îáúÿâëÿòü òèï?

269

Ïðîñòûå òèïû äàííûõ

270

Boolean

270

Integer

270

Long

270

Single

271

Double

271

Currency

271

Date

272

String

272

Variant

273

Òèïû äàííûõ, îïðåäåëÿåìûå ïîëüçîâàòåëåì

273

ÑÈÍÒÀÊÑÈ×ÅÑÊÈÅ ÊÎÍÑÒÐÓÊÖÈÈ ßÇÛÊÀ VBA

274

Âûðàæåíèÿ è îïåðàöèè

274

Àðèôìåòè÷åñêèå îïåðàöèè

274

Ëîãè÷åñêèå îïåðàöèè

275

Îïåðàöèè ñðàâíåíèÿ

275

Îïåðàöèÿ Is

275

Îïåðàöèÿ

Like

276

Äèðåêòèâû Option Compare Binary è Option Compare Text

276

Ïðèìåðû èñïîëüçîâàíèÿ îïåðàöèè Like

276

Îïåðàöèè ñî ñòðîêàìè

Óïðàâëÿþùèå êîíñòðóêöèè ÿçûêà

277

277

Ïåðåõîä ïî ìåòêå

 

277

Îïåðàòîð GoTo

277

Îïåðàòîð GoSub…Return

278

Îïåðàòîðû öèêëà

278

Öèêë

While … Wend

278

Öèêë Do … Loop

279

Öèêë For … Next

279

Öèêë For Each … Next

280

Ïðèíÿòèå ðåøåíèé: îïåðàòîðû âåòâëåíèÿ (óñëîâíûå êîíñòðóêöèè)

280

Ôóíêöèÿ

Switch

280

Ôóíêöèÿ Choose

281

Ôóíêöèÿ IIf

281

Êîíñòðóêöèÿ If … Then … Else … End If

281

Êîíñòðóêöèÿ Select Case … End Select

282

ÎÏÅÐÀÒÎÐÛ È ÂÑÒÐÎÅÍÍÛÅ ÔÓÍÊÖÈÈ ßÇÛÊÀ VBA

282

Èíòåðôåéñ ñ ïîëüçîâàòåëåì

283

Âûâîä ñîîáùåíèé (ôóíêöèÿ MsgBox)

283

Ââîä äàííûõ (ôóíêöèÿ InputBox)

284

Âçàèìîäåéñòâèå ñ îïåðàöèîííîé ñèñòåìîé

285

Çàïóñê ïðèëîæåíèé (ôóíêöèÿ Shell)

285

Êàê ñäåëàòü çàïóùåííîå ïðèëîæåíèå àêòèâíûì (îïåðàòîð AppActivate)

286

Óïðàâëåíèå äðóãèì ïðèëîæåíèåì ïðè ïîìîùè èìèòàöèè ââîäà ñ êëàâèàòóðû (îïåðàòîð SendKeys)

286

Âû÷èñëåíèå ôàêòîðèàëà ïðè ïîìîùè êàëüêóëÿòîð Windows èç VBA-êîäà

286

Ôàéëîâûå îïåðàöèè

287

Êàêèå áûâàþò ôàéëû

288

Ôàéëû ïîñëåäîâàòåëüíîãî äîñòóïà

288

Ôàéëû ïðîèçâîëüíîãî äîñòóïà

288

Оглавление 15

Áèíàðíûå (äâîè÷íûå) ôàéëû

Îïåðàöèè ñ êàòàëîãàìè è äèñêàìè

288

288

Îïåðàòîð ChDrive

288

Îïåðàòîð MkDir

288

Îïåðàòîð ChDir

288

Îïåðàòîð RmDir

289

Ôóíêöèÿ CurDir

289

Ôóíêöèÿ Dir

289

Ïåðåèìåíîâàíèå ôàéëà èëè êàòàëîãà (îïåðàòîð Name)

290

Êîïèðîâàíèå ôàéëîâ (îïåðàòîð FileCopy)

290

Óäàëåíèÿ ôàéëîâ (îïåðàòîð Kill)

290

Êàê îòêðûòü ôàéë (îïåðàòîð Open)

291

Îñîáåííîñòè ðåæèìà ïðîèçâîëüíîãî äîñòóïà ê ôàéëó

291

Ââîä äàííûõ èç îòêðûòîãî ôàéëà (îïåðàòîðû Input, Line Input)

292

Âûâîä äàííûõ â îòêðûòûé ôàéë (îïåðàòîðû Write, Print)

293

Âûâîä ñòðîê â òåêñòîâûé ôàéë

293

Îïåðàòîð Width

293

Ôóíêöèÿ Spc

293

Ôóíêöèÿ Tab

294

Çàêðûòèå ôàéëîâ (îïåðàòîðû Reset, Close)

294

Îïåðàöèè ñ ôàéëàìè, îòêðûòûìè â ðåæèìå ïðîèçâîëüíîãî äîñòóïà

294

Îïåðàòîð Seek

294

Ôóíêöèÿ Loc

294

Îïåðàòîð Put

295

Îïåðàòîð Get

295

Ôóíêöèÿ EOF

295

Îïåðàòîð Lock

295

Îïåðàòîð Unlock

295

Ðàáîòà ñ ñèñòåìíûì ðååñòðîì Windows

296

Îïåðàòîð SaveSetting

296

Ôóíêöèÿ GetSetting

296

Îïåðàòîð DeleteSetting

297

Ðàáîòà ñî çíà÷åíèÿìè äàòû è âðåìåíè

297

Ïðåäñòàâëåíèå çíà÷åíèé äàòû è âðåìåíè â MS Office è VBA

297

Ïðåäñòàâëåíèå çíà÷åíèé âðåìåíè

297

Ïðåäñòàâëåíèå çíà÷åíèé äàòû

297

Ôóíêöèÿ DateSerial

297

Ïðåîáðàçîâàíèå ñòðîê â çíà÷åíèÿ äàòû (ôóíêöèÿ DateValue)

298

Ôóíêöèÿ TimeSerial

298

Ïðåîáðàçîâàíèå ñòðîê â çíà÷åíèÿ âðåìåíè (ôóíêöèÿ TimeValue)

299

Ñèñòåìíàÿ äàòà è ñèñòåìíîå âðåìÿ

299

Ôóíêöèÿ Date

299

Ôóíêöèÿ Time

299

Ôóíêöèÿ Now

300

Êàëåíäàðíûå âû÷èñëåíèÿ

300

Ôóíêöèÿ DateAdd

300

Ôóíêöèÿ DateDiff

301

Ôóíêöèÿ DatePart

301

Ôóíêöèÿ Year

302

Ôóíêöèÿ Month

302

Ôóíêöèÿ Day

302

Ôóíêöèÿ

Weekday

302

Âû÷èñëåíèÿ ñî çíà÷åíèÿìè âðåìåíè

303

Ôóíêöèÿ Hour

303

Ôóíêöèÿ Minute

303

Ôóíêöèÿ

Second

303

Ôóíêöèÿ Timer

303

Ðàáîòà ñî ñòðîêàìè

303

Ñðàâíåíèå ñòðîê (ôóíêöèÿ StrComp)

303

Âûäåëåíèå ïîäñòðîêè

304

Ôóíêöèè

Left è LeftB

304

Ôóíêöèè Right è RightB

304

Ôóíêöèè Mid è MidB

304

Ïîèñê â ñòðîêå (ôóíêöèè InStr, InStrB)

305

Ïðåîáðàçîâàíèÿ ðåãèñòðà (ôóíêöèè LCase, UCase)

305

Ôîðìàòèðîâàíèå ñòðîêè

306

16 Оглавление

Ôóíêöèÿ String

306

Ôóíêöèÿ Len

306

Ïðèìåðû ôîðìàòèðîâàíèÿ ñòðîê

306

Ôóíêöèè óäàëåíèÿ ïðîáåëîâ (LTrim, RTrim, Trim)

307

Ôóíêöèÿ

Format

307

Ïðåîáðàçîâàíèå ñòðîêîâûõ è ñèìâîëüíûõ çíà÷åíèé

309

Ôóíêöèè Asc, AscB è AscW

309

Ôóíêöèè Chr, Chr B è Chr W

309

Ïðèìåðû èñïîëüçîâàíèÿ ñòðîêîâûõ ôóíêöèé

309

Øèôðîâàíèå/äåøèôðîâàíèå ñòðîêè

309

Ðàçáîð ñòðîêè

311

Предисловие

Çà÷åì ýòà êíèãà

Современный офис, будь то государственное или коммунальное учреждение, торговая фирма или заводоуправление, немыслим без пакета программ MS Office. Повсюду, где ведется деловая переписка, и работают с текстовыми документами любого рода, можно увидеть вездесущий Word. На листах рабочих книг Excel ведется множество видов учета и отчетности эта программа рас- пространена почти так же широко, как и Word. Практически говоря, MS Word и MS Excel стали стандартом де-фактов офисной деятельности. Такие приложения пакета Office, как MS Access и

MS PowerPoint, используются не столь повсеместно, но все же распространены достаточно широко. И столь же широко, как сам пакет MS Office, распространено его незнание. Тысячи и тысячи пользователей могли бы несказанно облегчить и усовершенствовать свою работу, использовав лишь маленькую толику возможностей MS Office, ноне делают этого. Такой пользователь готов часами выполнять утомительные, рутинные операции. Идея автоматизировать свою работу ему в голову не приходит, — нет, не потому, что он не хотел бы облегчить себе жизнь. И не потому, что мощь MS Office ему неведома, — он слышал такие слова, как макрос”, “VBA”, “OLE” и т.п. Но эти слова его слегка пугают. “Это, пожалуй, сложновато для меня”. “Это для программистов”. Но немногие отдают себе отчет в том, что MS Office — это не система программирования и не платформа для разработки программного обеспечения. MS Office — это пользовательский пакет и большинство имеющихся в нем средств предназначено для самых что ни на есть обыкновенных пользователей-непрофессионалов.

В этой книге будет показано, как можно решать типичные задачи современного офиса, исполь-

зуя, если не все, то многие из возможностей пакета MS Office, которые обычно остаются за ка- дром”. Здесь будет показано, каким образом даже не слишком продвинутый пользователь в со- стоянии значительно облегчить себе жизнь и усовершенствовать свою работу при помощи инст-

рументальных средств пакета MS Office.

Ñòàðèííûé ñïîñîá: “Äåëàé, êàê ÿ!”

В стародавние времена, на военном флоте для связи между кораблями использовали специаль-

ные сигналы наборы вымпелов. Когда флагманский фрегат, в разгаре сражения, не мог или не успевал сообщить своим кораблям детальные инструкции по предстоящему маневрированию, он поднимал сигнал Делай, как я!”. И начинал маневр, показывая собственным примером, что и как следует делать остальным кораблям эскадры. Этот старинный способ сверхбыстрого обученияпредставляется наиболее подходящим для того, чтобы ввести читателя-непрофессионала во внутренний мир Office. В этой книге решаются типичные задачи современного офиса, не вдаваясь в слишком подробные объяснения. Поначалу, неподготовленному читателю будет непонятным абсолютно все он должен будет просто вы- полнять детальные инструкции и наблюдать, что получается в результате. Выполняемые действия будут снабжены некоторыми объяснениями, из которых, по мере продвижения вперед по материа- лу книги, картина будет становиться все яснее. Сначала будет понятным только кое-что из выпол- няемых действий, затем станет понятным многое. Наконец, в последней главе будут суммированы и систематизированы те основы макроязыка VBA, которыми на практике к тому моменту уже ов- ладеет читатель.

18 Предисловие

Î ÷åì ýòà êíèãà

Среди великого многообразия офисныхзадач были выбраны некоторые, наиболее типичные и более всего, на наш взгляд, нуждающиеся в автоматизации. Вообще говоря, задачи автоматизации можно разделить на два больших класса. К первому из них относятся операции, которые, в принципе, можно без большого напряжения выполнить и вручную просто придется много раз нажимать на клавиши или до одурениящелкать мышью. При автоматизации таких операций все сводится к тому, чтобы заменить много щелчков мышью или нажатий на клавиши одним щелчком или одним нажатием. Задачи второго класса сложнее. Есть операции, которые, даже запасясь бесконечным терпени- ем, вручную не выполнишь. Решать такие задачи труднее, но и результат решения более ценен. Этот результат новое качество, новые функциональные возможности, которые ранее были не- доступны. Понятно, что ради решения в первую очередь именно таких задач стоит браться за изуче- ние инструментальных средств Office.

×òî ïîòðåáóåòñÿ äëÿ ðàáîòû ñ ýòîé êíèãîé

Прежде всего, — желание. Желание работать в современном офисе на современном уровне. Этому не так трудно научиться, как некоторые думают, но определенных усилий это все же по- требует. Конечно же, нам потребуется пакет MS Office, установленный на компьютере. Должен ли это быть именно MS Office 2000? Не обязательно (хотя, разумеется, желательно). Большинство средств, которые будут использованы, имеются и в предыдущих версиях пакета. Если, например, говорить о пакете MS Office 97, то практически все, о чем пойдет речь в этой книге, совместимо с ним. Существует несколько вариантов установки MS Office. Может встретиться вариант, в котором отсутствуют некоторые из инструментальных средств. Например, возможна установка пакета MS Office без VBA — системы поддержки языка программирования Visual Basic для приложений. В каких-то случаях, возможно, необходимо будет доустановить недостающие компоненты пакета.

Î ìàêðîñàõ è ìàêðîâèðóñàõ

В пакете MS Office 2000 (в отличие от предыдущих версий) предусмотрена многоуровневая защита от макровирусов. Что такое макровирус? Чтобы понять это, необходимо вначале иметь представление о нормальных макропрограммах” — макросах, как их принято называть. Макро- язык VBA — Visual Basic для приложений является, фактически, одним из основных связую- щих звеньев, благодаря которым различные программы пакета MS Office связаны воедино, и бла- годаря которым вообще можно говорить о таких вещах, как рабочая среда MS Office или объекты Office.

Îïàñíû ëè ìàêðîñû?

Опасны ли макросы сами по себе? Нет, конечно. Не более чем опасны обычные программы, такие, например, как MS Word или MS Excel. Подобно тому, как существуют программные виру- сы, способные заразитьпрограммный файл (например, исполняемый файл MS Word) точно так же существуют и макровирусы, способные заразитьмакропрограмму.

Ãäå îíè íàõîäÿòñÿ?

Макропрограммы макросы пакета MS Office “живутв документах Word, шаблонах, листах рабочих книг Excel и других файлах данных Office. Если макрос базы данных Access может физически находиться только в файле базы данных, то макросы Word обитают как в собственно документах (при этом, передав кому-то файл документа, одновременно будет передан содержа- щиеся в нем макросы), так и файлах шаблонов в первую очередь в общем шаблоне Normal

Предисловие 19

(Обычный). Содержащиеся в шаблоне Normal макросы никуда не передаются при пересылке до- кументов и всегда под рукой”, то есть они связаны с данным конкретным компьютером. В среде Excel макросы могут содержаться как в рабочих книгах (и тогда они передаются вместе с файлом рабочей книги), так и в шаблонах Excel.

Íàäî ëè áîÿòüñÿ ìàêðîñîâ?

Если будет открыт документ Word, присланный, например, по электронной почте, то риск по- ражения макровирусами лежит полностью на пользователе, сделавшем это. Если используются собственные макросы, записанные в общем шаблоне Normal, и не открываются чужие документы с макросами, то макровирусы документов Word гарантированно не страшны. Отношение к макро- вирусам напоминает отношение к автомобильным авариям. Несомненным фактом является то, что в дорожных происшествиях гибнут ежегодно тысячи и десятки тысяч людей. Но никому не при- ходит при этом в голову отказаться от автомобилей, как от средства передвижения. И случающие- ся в жилых зданиях пожары не заставили еще человечество вернуться в пещеры. Слишком многое дают людям автомобильный транспорт и жилые здания достаточно много, чтобы человечество было согласно идти на риск несчастных случаев. Точно так же, макросы рабочей среды MS Office слишком многое дают пользователю, чтобы избегать угрозы макровирусов ценой отказа от услуг добропорядочныхмакросов. Как и в примерах с автомобилями и пожарами