<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>LXF142:First step - История изменений</title>
		<link>http://wiki2.linuxformat.ru/index.php?title=LXF142:First_step&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Wed, 13 May 2026 20:53:24 GMT</lastBuildDate>
		<item>
			<title>Crazy Rebel: викификация, оформление, иллюстрация</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF142:First_step&amp;diff=13821&amp;oldid=prev</link>
			<description>&lt;p&gt;викификация, оформление, иллюстрация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: '''Первые шаги''' Серия «Linux для новичков» [[Категория:Учебнрики]]&lt;br /&gt;
&lt;br /&gt;
==''OOo Basic'': Есть автоматизация==&lt;br /&gt;
&lt;br /&gt;
: Многократно по­вто­рять од­ну и ту же опе­ра­цию – скучища. Сэ­ко­номь­те свое вре­мя и уси­лия, сле­дуя ин­ст­рук­ци­ям '''Бо­ба Мос­са''' по мак­ро­сам.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF142_52_1.jpg|300px]] Ав­то­ма­ти­зи­руй­те за­да­ния с по­мо­щью про­стых ком­би­на­ций кла­виш бла­го­да­ря ре­дак­то­ру при­вя­зок к кла­ви­шам в ''OOo''.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Хо­тя при од­ной мыс­ли о необ­хо­ди­мо­сти на­пи­сания ко­да для ав­то­ма­ти­за­ции ти­по­вых за­дач вы мо­же­те чув­ст­во­вать, буд­то ва­ше серд­це прон­зи­ло ле­дя­ное лез­вие стра­ха, та­кой код мо­жет по­хва­стать­ся це­лым ря­дом пре­иму­ществ. &lt;br /&gt;
&lt;br /&gt;
Уп­ро­щение и ав­то­ма­ти­за­ция за­дач уп­ро­ща­ет жизнь, а в при­да­чу по­вы­ша­ет ва­шу про­дук­тив­ность. Пре­ж­де чем вы­ру­бать­ся в тяж­кий сон пе­ред ком­пь­ю­те­ром или да­вить­ся ру­ко­во­дством по про­грам­ми­ро­ванию, вы бу­де­те ра­ды уз­нать, что го­рю лег­ко по­мочь, за­гру­зив шаб­лон, при­менив мо­дуль рас­ши­рения или за­пи­сав на­бор дей­ст­вий па­рой на­жа­тий кноп­ки, да­же не за­ду­мы­ва­ясь об изу­чении разницы ме­ж­ду под­про­грам­ма­ми и функ­ция­ми.&lt;br /&gt;
&lt;br /&gt;
В хо­де это­го уро­ка вы смо­же­те за­ме­тить, что это от­лич­ный спо­соб рас­ши­рить су­ще­ст­вую­щий на­бор на­вы­ков, и уз­нае­те все по­пу­ляр­ные ком­понен­ты ''OpenOffice.Org'' офис­но­го па­ке­та немно­го луч­ше. Начнем…&lt;br /&gt;
&lt;br /&gt;
===Запись дей­ст­вий===&lt;br /&gt;
&lt;br /&gt;
Начнем с за­пи­си про­сто­го мак­ро­са для по­вто­ряю­щих­ся за­дач. На­при­мер, нуж­но соз­дать 10 но­вых пи­сем, и для ка­ж­до­го из них пе­рей­ти в ме­ню '''Файл &amp;gt; Соз­дать''', сде­лать вы­равнивание по пра­во­му краю, вве­сти ад­рес, сде­лать вы­равнивание по ле­во­му краю, а за­тем сно­ва про­дол­жить. Од­на­ко вы мог­ли бы пе­рей­ти в '''Сер­вис &amp;gt; Мак­рос &amp;gt; Запись мак­ро­са''', все это про­де­лать, на­жать кноп­ку '''Ос­та­но­вить запись''' и со­хранить это как '''LetterStart'''. Те­перь при ка­ж­дом со­став­лении пи­сем вы мо­же­те про­сто пе­рей­ти в '''Ин­ст­румен­ты &amp;gt; Мак­рос &amp;gt; Вы­полнить мак­рос…''' и вы­брать '''LetterStart''', что­бы на­чать но­вое. Че­рез ка­кие-то се­кун­ды вы при­сту­пи­те к на­пи­санию основ­но­го тек­ста, вме­сто то­го, что­бы про­де­лы­вать все опе­ра­ции за­но­во.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко, за­пустив '''LetterStart''' несколь­ко раз, вы об­на­ру­жи­те, что ка­ж­дый раз ска­кать по пунк­там ме­ню то­же до­воль­но нуд­но. К сча­стью, мы мо­жем при­вя­зать мак­ро­сы к ме­ню, панели ин­ст­ру­мен­тов или со­че­танию кла­виш, что­бы уп­ро­стить про­цесс до од­но­го на­жа­тия кноп­ки или ком­би­на­ции кла­виш.&lt;br /&gt;
&lt;br /&gt;
Для вы­полнения по­следнего, пе­рей­ди­те в '''Сер­вис &amp;gt; На­строй­ка…''', а за­тем на вклад­ку '''Кла­виа­ту­ра'''. Здесь вы мо­же­те вы­брать лю­бую ком­би­на­цию кла­виш в со­от­вет­ст­вую­щем окне, а внизу свя­зать со­че­тание кла­виш с мак­ро­сом по­сред­ст­вом '''Мак­ро­сы &amp;gt; Поль­зо­ва­тель &amp;gt; Стан­дарт­ные &amp;gt; LetterStart'''. Щелкните ле­вой кноп­кой мы­ши на со­от­вет­ст­вую­щем мак­ро­се, а за­тем '''Из­менить''' или '''За­гру­зить''' для за­груз­ки скрип­та, ко­то­рый бу­дет при­вя­зан к ком­би­на­ции кла­виш по вы­бо­ру. По по­нят­ным при­чи­нам при этом ре­ко­мен­ду­ет­ся из­бе­гать час­то ис­поль­зуе­мых со­че­таний кла­виш, та­ких как '''Ctrl+C, Ctrl+V''' и '''Ctrl+P'''.&lt;br /&gt;
&lt;br /&gt;
===При­вяз­ка к ме­ню===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Скорая помощь|Содержание=На­жа­тие на кла­ви­шу '''Esc''' за­кро­ет все соз­дан­ные ва­ми диа­ло­го­вые ок­на.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Что­бы при­вя­зать мак­рос к ме­ню, пе­рей­ди­те в '''Тools &amp;gt; На­строй­ка… &amp;gt; Ме­ню'''. Вы­бе­ри­те '''Ин­ст­ру­мен­ты''' в со­от­вет­ст­вую­щем вы­па­дающем спи­ске, за­тем вы­бе­ри­те, где в этом ме­ню вы хо­ти­те соз­дать спе­ци­аль­ное под­ме­ню для ва­ших лич­ных мак­ро­сов. На­жми­те кноп­ку '''Из­менить &amp;gt; До­ба­вить под­ме­ню…''' и дай­те ка­кое-нибудь за­по­ми­наю­щее­ся на­звание, ти­па '''Лич­ные Мак­ро­сы'''.&lt;br /&gt;
&lt;br /&gt;
Те­перь вернитесь в вы­па­даю­щее ме­ню, ко­то­рое вы ис­поль­зо­ва­ли до это­го, вы­бе­ри­те '''Ин­ст­ру­мен­ты &amp;gt; Лич­ные мак­ро­сы''' и на­жми­те кноп­ку '''До­ба­вить…''' Най­ди­те свой мак­рос че­рез '''OpenOffice.org &amp;gt; Мои Мак­ро­сы &amp;gt; Стан­дарт­ные''', а за­тем на­жми­те '''LetterStart''', как рань­ше. На­жми­те кноп­ку '''ОК''', что­бы при­менить из­менения, и те­перь ваш мак­рос бу­дет досту­пен в '''Ин­ст­ру­мен­ты &amp;gt; Лич­ные Мак­ро­сы'''. Соз­дание при­вяз­ки к панели управ­ления осу­ще­ст­в­ля­ет­ся та­ким же об­ра­зом, и это мож­но сде­лать че­рез '''Ин­ст­ру­мен­ты &amp;gt; На­строй­ка… &amp;gt; Панели за­дач'''.&lt;br /&gt;
&lt;br /&gt;
Дру­гой при­мер – соз­дание спе­ци­аль­ной фор­мы для за­полнения, что­бы рес­пон­дент, на­жав спе­ци­аль­ную кноп­ку в низу этой фор­мы, воз­вра­щал ин­фор­ма­цию по элек­трон­ной поч­те че­рез локаль­ный поч­то­вый кли­ент. Как и пре­ж­де, вам по­тре­бу­ет­ся соз­дать кноп­ку и вве­сти код для при­сое­динения со­хранен­но­го до­ку­мен­та к со­от­вет­ст­вую­ще­му элек­трон­но­му пись­му и его от­прав­ки. Это мож­но сде­лать че­рез слияние поч­ты (как мы опи­сы­ва­ли в [[LXF138:OoWtiter|LXF138]]) или с по­мо­щью мак­ро­са.&lt;br /&gt;
&lt;br /&gt;
===Под­держ­ка Microsoft===&lt;br /&gt;
&lt;br /&gt;
Ес­ли вы час­то го­няе­те до­ку­мен­ты ме­ж­ду элек­трон­ны­ми таб­ли­ца­ми ''OpenOffice.org'' и ''Microsoft Office'', вас по­ра­ду­ет, что ''OpenOffice.org'' под­дер­жи­ва­ет мак­ро­сы ''VBA'' от Microsoft (Visual Basic для при­ло­жений) – по крайней ме­ре, час­тич­но. Менее при­ят­но бу­дет услы­шать, что не ка­ж­дый ди­ст­ри­бу­тив или сбор­ка это­го офис­но­го па­ке­та обес­пе­чи­ва­ет тот же (или во­об­ще ка­кой-ли­бо) уро­вень под­держ­ки. На­при­мер, по­следние вер­сии Ubuntu ра­бо­та­ют с ''Go-OO'' бил­дом ''OpenOffice.org'' и, сле­до­ва­тель­но, обес­пе­чи­ва­ют под­держ­ку мак­ро­сов ''Microsoft Office'', а ''OpenOffice.org PPA'' – нет.&lt;br /&gt;
&lt;br /&gt;
Един­ст­вен­ный спо­соб обес­пе­чить под­держ­ку мак­ро­сов ''VBA'', не соз­да­вая свой би­нарник – это уста­но­вить ''Go-oo/Oxygen Office'' про­из­вод­ные ''OpenOffice.org'' ли­бо OpenSUSE. Да, вы все про­чли вер­но. Novell и быв­ший Sun ра­бо­та­ли со­вме­ст­но по под­держ­ке мак­ро­сов, и поль­зо­ва­те­ли OpenSUSE на­сла­ж­да­ют­ся час­тич­ной под­держ­кой мак­ро­сов VBA, на­чи­ная с вер­сии 7.&lt;br /&gt;
&lt;br /&gt;
Од­на­ко, ис­поль­зуя вер­сию ''OOo'' с под­держ­кой мак­ро­сов, вы за­ме­ти­те, что при от­кры­тии до­ку­мен­та с мак­ро­са­ми из ''Microsoft Office'' ва­ши мак­ро­сы мол­чат и ''OpenOffice.org'', ка­жет­ся, не за­ме­ча­ет да­же их су­ще­ст­во­вания. Это по­то­му, что по умол­чанию в ''OpenOffice.org'' мак­ро­сы ''Microsoft Office'' из со­об­ра­жений безо­пас­но­сти от­клю­че­ны. Что­бы вклю­чить их, от­крой­те ваш '''Ор­га­най­зер мак­ро­сов''' и до­бавь­те сле­дую­щую стро­ку в на­ча­ло ка­ж­до­го мо­ду­ля ко­да:&lt;br /&gt;
&lt;br /&gt;
 Option VBASupport 1&lt;br /&gt;
&lt;br /&gt;
Не ро­бей­те, ес­ли вы по­ка не знае­те, что та­кое мо­ду­ли – мы сей­час их рас­смот­рим. В неко­то­рых вер­си­ях ''OpenOffice.org'' на­до так­же рас­ком­мен­ти­ро­вать все стро­ки ко­да. До­бав­лен­ная стро­ка долж­на (в боль­шин­ст­ве вер­сий) пре­сечь уст­ра­шаю­ще­го ви­да со­об­щение об ошиб­ке в ''OOo'', и вы мо­же­те так­же на­стро­ить на­строй­ки VBA мак­ро­са с по­мо­щью '''Ин­ст­ру­мен­ты &amp;gt; Па­ра­мет­ры… &amp;gt; За­груз­ка/Со­хранение &amp;gt; Свой­ст­ва VBA'''.&lt;br /&gt;
&lt;br /&gt;
И, на­конец, сто­ит от­ме­тить, что, хо­тя под­держ­ка мак­ро­сов про­дол­жа­ет улуч­шать­ся, она по-прежнему несо­вер­шен­на. Боль­шин­ст­во об­щих объ­ек­тов и ме­то­дов бу­дут ра­бо­тать, но ес­ли раз­ра­бот­чик мак­ро­сов был осо­бо экс­цен­трич­ным в вы­бо­ре ме­то­дов ко­ди­ро­вания, ис­поль­зо­вал су­пер-но­вые функ­ции или спе­ци­аль­ные объ­ек­ты Windows, жди­те про­блем. &lt;br /&gt;
&lt;br /&gt;
В ре­аль­но­сти, в про­дук­ти­ве, где у вас долж­на быть род­ная под­держ­ка мак­ро­сов VBA, нуж­но ли­бо за­пустить ''Microsoft Office'' на вир­ту­аль­ной ма­шине, ли­бо за­пустить ука­зан­ный офис­ный па­кет в по­следней вер­сии сре­ды ''Wine'', в ко­то­рой име­ют­ся '''Windows Script Host''' и уже уста­нов­лен­ный ''VB6''. Для по­лу­чения под­роб­ной ин­фор­ма­ции по ним, см. http://appdb.winehq.org – по­ищи­те там свою вер­сию ''Microsoft Office''.&lt;br /&gt;
&lt;br /&gt;
===Креа­тив­ная встав­ка===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF142_53_1.jpg|300px]] Мо­дуль '''Фор­ма дан­ных''' об­лег­ча­ет ра­бо­ту в ''OOo Calc''.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Зай­ди­те на http://extensions.services.openoffice.org/de/project/DataForm и оты­щи­те мо­дуль рас­ши­рения под на­званием '''Фор­ма для дан­ных'''. И хо­тя вы мог­ли бы про­сто на­пи­сать что-то по­хо­жее са­ми (или ис­поль­зо­вать ''OOo Base''), мож­но ска­чать OXT-файл, от­крыть его в ''OOo Calc'', а за­тем на­сла­дить­ся вво­дом дан­ных го­раз­до бы­ст­рее, чем бы­ло бы без него (при­мер по­ка­зан спра­ва).&lt;br /&gt;
&lt;br /&gt;
По­сле уста­нов­ки мож­но сра­зу ис­поль­зо­вать фор­му, про­сто на­брав необ­хо­ди­мое ко­ли­че­­ст­во за­го­лов­ков, вы­де­лив их и пе­рей­дя к '''Дан­ные &amp;gt; Фор­ма дан­ных…''' За­полните стро­ки, вы­бе­ри­те '''Но­вый''', и вы уви­ди­те дан­ные, при­менен­ные к ря­ду. Мож­но ис­поль­зо­вать '''Сле­дую­щая запись''' и '''По­след­няя запись''' для пе­ре­клю­чения ме­ж­ду стро­ка­ми ин­фор­ма­ции, уда­ления и восста­нов­ления за­пи­сей.&lt;br /&gt;
&lt;br /&gt;
===В но­гу со вре­ме­нем===&lt;br /&gt;
&lt;br /&gt;
Ес­ли ни мак­ро­сы, ни мо­ду­ли рас­ши­рения вас не ин­те­ре­су­ют, вы бу­де­те ра­ды уз­нать, что мож­но соз­дать до­воль­но слож­ную функ­цио­наль­ность, поль­зу­ясь го­то­вы­ми сред­ст­ва­ми ''OpenOffice.org Calc''. Ска­жем, ска­чай­те шаб­лон с http://extensions.services.openoffice.org/en/project/Calendartemplate, ав­то­ма­ти­че­­ски генери­рую­щий ка­лен­дарь ме­ся­ца в таб­ли­це, го­то­вой к пе­ча­ти. Тон­кая на­строй­ка жел­той об­лас­ти бу­дет по­ка­зы­вать лич­ные со­бы­тия в этом ка­лен­да­ре, а пе­ре­ме­щение по ме­ся­цу по­зво­ля­ет так­же пе­ча­тать бу­ду­щие или пре­ды­ду­щие ме­ся­цы. Вот от­лич­ный при­мер то­го, что мож­но сде­лать при миниму­ме знаний о функ­ци­ях ''OOo Calc'' и неко­то­рой изо­бре­та­тель­но­сти, и это­му дей­ст­ви­тель­но сто­ит уде­лить вре­мя.&lt;br /&gt;
&lt;br /&gt;
===OOo Basic: Свой личный макрос===&lt;br /&gt;
&lt;br /&gt;
: Уве­личь­те про­дук­тив­ность ва­ше­го про­грамм­но­го ко­да с по­мо­щью мак­ро­сов в про­грам­мах ''Openoffice.org'' – на­при­мер, ''Calc''.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF142_54_1.jpg|300px]] Где за­кан­чи­ва­ют­ся ко­ман­ды для яче­ек, на­чи­на­ют­ся мак­ро­сы. Здесь пред­став­ле­на функ­ция '''doMaths()''' в дей­ст­вии.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Рас­смот­рев, как за­пи­сать мак­рос и об­лег­чить его за­пуск, и убе­див­шись, что ''OpenOffice.org'' со­вмес­тим с мак­ро­са­ми, по­лу­чен­ны­ми от ва­ших дру­зей в фай­лах ''Microsoft Office'', соз­да­дим-ка соб­ст­вен­ный мак­рос. К со­жа­лению, у нас здесь нет мес­та на объ­яснения, как про­грам­ми­ро­вать, и ес­ли вы со­всем не зна­ко­мы с ''OpenOffice.org Basic'', ре­ко­мен­ду­ем ру­ко­во­дство по язы­ку: http://wiki.services.openoffice.org/wiki/Documentation/BASIC_Guide.&lt;br /&gt;
&lt;br /&gt;
Мы нач­нем с за­груз­ки дру­гой таб­ли­цы в ''OOo Calc''. Сле­дуй­те по­ша­го­во­му ру­ко­во­дству на сле­дую­щей стра­ни­це для за­пус­ка ''Visual Code Editor'', за­тем вве­ди­те сле­дую­щий код:&lt;br /&gt;
&lt;br /&gt;
 sub main&lt;br /&gt;
  loadNewFile(“scalc”)&lt;br /&gt;
 end sub&lt;br /&gt;
 sub loadNewFile(fileType as string)&lt;br /&gt;
  dim doc as object, desk as object, fileLaunch as string, Dummy()&lt;br /&gt;
  fileLaunch=“private:factory/” &amp;amp; filetype&lt;br /&gt;
  desk = CreateUnoService(“com.sun.star.frame.Desktop”)&lt;br /&gt;
  doc = desk.loadComponentFromUrl(fileLaunch,”_blank”,0,Dummy())&lt;br /&gt;
 end sub&lt;br /&gt;
&lt;br /&gt;
Раз­бе­рем­ся в этом ко­де. Пер­вая под­про­грам­ма на­зы­ва­ет­ся '''main;''' она за­пуска­ет дру­гую под­про­грам­му, под на­званием '''loadNewFile'''. Так по­ла­га­ет­ся де­лать, по­сколь­ку при этом лег­ко рас­ши­рить функ­цио­наль­ность мак­ро­са, до­ба­вив в '''main''' но­вую под­про­грам­му. Од­на­ко за­меть­те, что мы впи­са­ли тер­мин '''scalc''' в ка­выч­ках – вдруг мы за­хо­тим при­ме­нять '''loadNewFile''' так­же и для за­пуска ''Writer''? Тогда мы вста­вим ту­да '''swriter'''.&lt;br /&gt;
&lt;br /&gt;
В про­грам­ме '''load''' вряд ли най­дет­ся что-то слож­ное да­же для но­вич­ка. Мы оп­ре­де­ля­ем пе­ре­мен­ные и со­хра­ня­ем их зна­чения, что­бы оп­ре­де­лить, как мы бу­дем ссы­лать­ся на но­вый до­ку­мент. Мы так­же при­сое­ди­ня­ем '''fileType''' к пе­ре­мен­ной '''fileLaunch''', по­сколь­ку это пе­ре­мен­ная, со­дер­жа­щая ку­сок ''OpenOffice.org'' для за­пуска. Стро­ка пе­ред '''end sub''' от­ве­ча­ет за объ­е­динение всех вве­ден­ных дан­ных и за­пуск ''OOo Calc''.&lt;br /&gt;
&lt;br /&gt;
===Рас­чет зна­чений===&lt;br /&gt;
&lt;br /&gt;
Ин­те­рес­но, конеч­но, доста­вать сво­их дру­зей мак­ро­сом, от­сы­лаю­щим им элек­трон­ные пись­ма с пустым вло­жением, но вы на­вер­ня­ка уже за­ду­ма­лись, когда же мы при­сту­пим к соз­данию ка­ко­го-нибудь по­лез­но­го ко­да. Так вот, вы до­ж­да­лись сво­его: сей­час мы вы­полним вся­кие ариф­ме­ти­че­­ские опе­ра­ции со зна­чения­ми, по­ме­щен­ны­ми в ва­шей таб­ли­це. Пусть мы хо­тим при­ба­вить '''A1''' к '''B5''', а сум­му за­пи­сать в '''C8'''. Мы мо­жем сде­лать это с по­мо­щью та­ко­го кус­ка ко­да:&lt;br /&gt;
&lt;br /&gt;
 sub doMaths&lt;br /&gt;
  dim sheet as object, cell as object&lt;br /&gt;
  sheet=thisComponent.sheets.getByName(“Sheet1”)&lt;br /&gt;
  cell=sheet.getCellByPosition(2,7)&lt;br /&gt;
  cell.formula=”=B5+A1”&lt;br /&gt;
 end sub&lt;br /&gt;
&lt;br /&gt;
Этот скрипт за­хва­ты­ва­ет дан­ные из лис­та ('''Sheet1''', в на­шем слу­чае), пе­ре­ме­ща­ет кур­сор в ячей­ку '''C8''' и из­ме­ня­ет фор­му­лу в ячей­ке для под­сче­та нуж­но­го зна­чения. От­ку­да мы зна­ем, что '''C8''' на­хо­дит­ся в (2,7)? По­то­му что '''A1''' – это (0,0). Поль­зо­ва­те­ли ''Microsoft Office'' со­чтут та­кой ме­тод об­ра­щения к ячей­кам стран­ным, но вы к нему бы­ст­ро при­выкнете.&lt;br /&gt;
&lt;br /&gt;
А ес­ли мы хо­тим вы­де­лить ошиб­ки с по­мо­щью диа­ло­го­­во­го ок­на? Это осо­бен­но по­лез­но, ес­ли вы хо­ти­те вы­де­лить в сво­ей таб­ли­це нечто важ­ное – или воз­мож­ную ошиб­ку. Мож­но так­же до­ба­вить '''sub do Maths''':&lt;br /&gt;
&lt;br /&gt;
 on error goto myLabel&lt;br /&gt;
&lt;br /&gt;
Пря­мо пе­ред '''end sub''' до­бавь­те:&lt;br /&gt;
&lt;br /&gt;
 myLabel:&lt;br /&gt;
 msgbox(“An error has occurred”)&lt;br /&gt;
&lt;br /&gt;
Те­перь вы ви­ди­те, что в слу­чае ошиб­ки мы про­пустим все стро­ки пе­ред '''myLabel''' и вы­ве­дем для поль­зо­ва­те­ля со­об­щение об ошиб­ке.&lt;br /&gt;
&lt;br /&gt;
Все, что бы­ло про­де­мон­ст­ри­ро­ва­но на на­шем уро­ке – лишь вер­ши­на айс­бер­га. Про­дук­тив­ность, ко­то­рой вы мо­же­те до­бить­ся, нау­чив­шись пи­сать мак­ро­сы, неве­ро­ят­на, осо­бен­но учи­ты­вая, что ''OpenOffice.org'' под­дер­жи­ва­ет несколь­ко язы­ков, вклю­чая ''JavaScript, Python'' и дру­гие. Вы най­де­те боль­ше ин­фор­ма­ции и по­лез­ные ре­сур­сы на сай­те http://www.ooomacros.org.&lt;br /&gt;
&lt;br /&gt;
===Шаг за ша­гом: Соз­да­ем мак­рос в ''ООо Basic''===&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF142_55_1.jpg|Шаг 1]]&lt;br /&gt;
* '''1 Най­ди­те ор­га­най­зер'''&lt;br /&gt;
: Пе­рей­ди­те к '''Ин­ст­ру­мен­ты &amp;gt; Мак­ро­сы &amp;gt; Ор­ганизо­вать Мак­ро­сы &amp;gt; OOo Basic…''' хо­тя вы так­же за­ме­ти­те, что ''OOo'' под­дер­жи­ва­ет мак­ро­сы на мно­же­ст­ве дру­гих язы­ков.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF142_55_2.jpg|Шаг 2]]&lt;br /&gt;
* '''2 От­крой­те мо­дуль'''&lt;br /&gt;
: По умол­чанию в ка­ж­дом до­ку­мен­те соз­да­ет­ся '''Мо­дуль 1'''; на­жми­те пра­вую кла­ви­шу мы­ши для ре­дак­ти­рования.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF142_55_3.jpg|Шаг 3]]&lt;br /&gt;
* '''3 За­пусти­те ре­дак­тор'''&lt;br /&gt;
: Те­перь, когда ок­но ре­дак­то­ра мак­ро­сов от­кры­то, вы прак­ти­че­­ски го­то­вы при­сту­пить к соз­данию мак­ро­са.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF142_55_4.jpg|Шаг 4]]&lt;br /&gt;
* '''4 На­бе­ри­те код'''&lt;br /&gt;
: По ме­ре на­пи­сания, код бу­дет под­цве­чи­вать­ся – что­бы луч­ше ви­зуа­ли­зи­ро­вать син­так­сис и вы­де­лить ошиб­ки.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF142_55_5.jpg|Шаг 5]]&lt;br /&gt;
* '''5 От­лад­ка мак­ро­са'''&lt;br /&gt;
: Ис­поль­зуй­те оп­цию '''Compile''' для крат­ко­го об­зо­ра или ис­поль­зуй­те кон­троль­ные точ­ки ['''Breakpoints'''] для раз­ре­шения менее оче­вид­ных про­блем.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF142_55_6.jpg|Шаг 6]]&lt;br /&gt;
* '''6 За­пуск'''&lt;br /&gt;
: Те­перь на­жми­те '''За­пуск Мак­ро­са''' и лю­буй­тесь про­цес­сом. Вы так­же мо­же­те при­вя­зать мак­рос к кла­ви­шам и со­бы­ти­ям.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===''Ge-OOo'' в го­ро­де===&lt;br /&gt;
&lt;br /&gt;
Пе­рей­ди­те по ссыл­ке http://extensions.services.openoffice.org/en/project/GeOOo – и вы по­лу­чи­те ру­ко­во­дство по соз­данию те­ма­ти­че­­ских карт. На слу­чай, ес­ли вы по­ка с ними не стал­ки­ва­лись – это кар­ты с гра­фи­че­­ски­­ми дан­ны­ми, и они мо­гут иметь под­цвет­ку ко­да или со­дер­жать кру­го­вые или столб­ча­тые диа­грам­мы для ка­ж­до­го ме­сто­по­ло­жения. Вы на­вер­ня­ка мо­же­те да­же соз­дать код луч­ше, а го­ры до­ку­мен­та­ции по­мо­гут вам стар­то­вать: в них вы най­де­те от­ве­ты на боль­шин­ст­во во­про­сов.&lt;br /&gt;
&lt;br /&gt;
Здесь грамотно ис­поль­зу­ют­ся раз­лич­ные час­ти офис­но­го па­ке­та, функ­ции и мак­ро­сы, что­бы соз­дать нечто вы­даю­щее­ся; пре­крас­ный при­мер, как мож­но вый­ти за пре­де­лы дан­но­го уро­ка.&lt;br /&gt;
&lt;br /&gt;
===Функ­ция или под­про­грам­ма?===&lt;br /&gt;
&lt;br /&gt;
Про­грам­ми­сты-но­вич­ки час­то по ошиб­ке за­бы­ва­ют о разнице ме­ж­ду функ­ция­ми и под­про­грам­ма­ми. По­ясним: обе име­ют ар­гу­мен­ты, вы­пол­ня­ют свой ку­сок ко­да и мо­гут быть вы­зва­ны дру­ги­ми функ­ция­ми и под­про­грам­ма­ми. Од­на­ко функ­ция воз­вра­ща­ет зна­чение, а под­про­грам­ма – нет; это оз­на­ча­ет, что для хранения ре­зуль­та­та функ­ции вам при­дет­ся оп­ре­де­лять пе­ре­мен­ную (см. Стро­ка 1), а для под­про­грам­мы это­го не тре­бу­ет­ся (Стро­ка 2).&lt;br /&gt;
&lt;br /&gt;
 1: result=function()&lt;br /&gt;
 2: runSubroutine()&lt;/div&gt;</description>
			<pubDate>Thu, 10 May 2012 07:46:08 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF142:First_step</comments>		</item>
	</channel>
</rss>