Руководство по написанию макросов и приложений электронных таблиц Марк Александр Бейн




страница1/9
Дата21.11.2016
Размер4.07 Mb.
Просмотров655
Скачиваний0
ТипРуководство
  1   2   3   4   5   6   7   8   9

О т т е х н о л о г и й д о р е ш е н и й
O
p
en
O
ff
ic
e.
o
rg
Изучение программирования
макросов для электронных
таблиц в OpenOffice.org
Быстрое и дружественное руководство
по написанию макросов и приложений
электронных таблиц
Марк Александр Бейн

OOo Basic и Автоматизация Calc

Learn OpenOffice.org
Spreadsheet Macro
Programming
OOoBasic and Calc Automation
A fast and friendly tutorial to writing macros and spreadsheet applications
Dr. Mark Alexander Bain
BIRMINGHAM — MUMBAI

Изучение программирования макросов для электронных таблиц в OpenOffice.org
OOo Basic и Автоматизация Calc
Быстрое и дружественное руководство по написанию макросов и приложений электронных таблиц
Марк Александр Бейн
Санкт-Петербург
2008

Изучение программирования макросов для электронных таблиц в
OpenOffice.org
OOo Basic и Автоматизация Calc
© 2006 Packt Publishing
Все права защищены. Никакая часть этой книги не может быть воспроизведена, сохранена в поисковой системе, или передана в любой форме или каким-либо образом, без предварительного письменного разрешения издателя, кроме в случае кратких цитат, включенных в критические статьи или обзоры.
Было предпринято много усилий при подготовке этой книги, чтобы гарантировать точность представленной информации. Однако, информация, содержавшаяся в этой книге предоставляется без гарантий, явных или подразумеваемых. Ни автор, ни Packt Publishing, ни ее дилеры или дистрибьютеры не несут ответственность за любой ущерб, причиненный или, предположительно, причиненный прямо или косвенно этой книгой.
Packt Publishing пыталась обеспечивать информацию обо всех торговых марках, компаниях и продуктах, упомянутых в этой книге путем надлежащего использования названий. Вместе с тем, Packt Publishing не может гарантировать точность этой информации.
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 1-84719-097-9
www.packtpub.com
Автор:
Марк Александр Бейн
Рецензент:
Эндрю Питоньяк
Редактор-консультант:
Девид Барнес
Технические редакторы:
Дивья Менон, Сорабх Синг
Перевод
Дмитрий Чернов © 2008

Об авторе
Доктор Марк Александр Бейн не всегда был крупным специалистом по программному обеспечению open-source, каким вы знаете его сейчас. Еще в конце семидесятых он начал работать в качестве лесника в Bowood Estates в Уилтшире. После этого он несколько лет работал в Лоутеровском парке дикой природы в Камберленде — не ясно, то ли его характер сделал его подходящим для того, чтобы заботиться о стаях волков, или же опыт сделал его таким, какой он есть в настоящее время.
В середине восьмидесятых был общий спад в популярности парков животных в
Великобритании, и Марк оказалась без работы с двумя молодыми сыновьями (Саймон и
Майкл), но с растущим интересом к программированию. Его жена приобрела для него самый современный Sinclair ZX 81, и именно она предложила, чтобы он поступил в колледж по изучению компьютеров.
Марк покинул колледж в 1989 и присоединился к Vodafone — тогда еще очень маленькой компании — где он начал писать программы используя VAX/VMS. Это было вскоре после того, как он стал увлекаться тем, что должно было существенно повлиять на остальную часть его жизни — Unix. Возвращение к прежней деятельности стало невозможной когда он познакомился с Oracle. В течение ближайших нескольких лет Vodafone стала многонациональной компании, и Марк продвигался от техника до инженера, от инженера до старшего инженера, и, наконец, до главного инженера.
На рубеже столетия общее плохое здоровье заставило Марка пересмотреть свою карьеру; и его жена опять пришла ему на помощь, когда увидела рекламу о работе преподавателем в
University of Central Lancashire. Кроме того, она предложила, чтобы он подумал о писательском ремесле.
Сегодня Марк пишет регулярно для Linux Format, Newsforge.com и Linux Journal. Он все еще преподает. И (очевидно) также пишет книги.

Оглавление
Предисловие.......................................................................................................................................1
Структура книги.............................................................................................................................1
Что нужно для этой книги.............................................................................................................2
Соглашения.....................................................................................................................................2
Обратная связь с читателем..........................................................................................................3
Поддержка......................................................................................................................................3
Загрузка примеров кода для книги...............................................................................................3
Опечатки ........................................................................................................................................3
Вопросы .........................................................................................................................................4
Глава 1. Работаем с OOo Basic IDE................................................................................................5
Прежде, чем мы начнем................................................................................................................5
Доступ к OOo IDE..........................................................................................................................5
Средства управления в IDE......................................................................................................8
Навигация по IDE....................................................................................................................11
Каталог объектов..............................................................................................................................................11
Выбор макроса.................................................................................................................................................12
Управление макросами OpenOffice.org Basic................................................................................................13
Создание диалогов в IDE............................................................................................................14
Резюме ..........................................................................................................................................18
Глава 2. Библиотеки, модули, подпрограммы, и функции.....................................................19
Использование библиотек...........................................................................................................19
Управление модулями с использованием библиотек ...........................................................19
Использование библиотек в многопользовательской среде................................................21
Добавление библиотек в область Макросы OpenOffice.org................................................24
Использование модулей..............................................................................................................27
Написание макросов....................................................................................................................28
Написание подпрограмм.........................................................................................................29
Объявление переменных.................................................................................................................................30
Присваивание значений переменным............................................................................................................30
Выполнение работы!.......................................................................................................................................30
Ввод переменных.............................................................................................................................................30
Написание функций.................................................................................................................30
Получение дополнительной информации.................................................................................31
Подпрограммы и функции в различных библиотеках..............................................................32
Глава 3. Объектная модель OOo..................................................................................................34
Что интересного в UNO?.............................................................................................................34
Обзор объектной модели OOo....................................................................................................35
Интерфейс...............................................................................................................................35
Сервис.......................................................................................................................................35
Модуль......................................................................................................................................36
Начинаем работать с UNO..........................................................................................................37
Автоматическое открытие и закрытие электронных таблиц........................................37
Online Справочные материалы...................................................................................................40
Реальный пример: Использование UNO Table для доступа к ячейке.....................................44
Сервисы внутри сервисов...........................................................................................................46
Поиск включенных сервисов...................................................................................................46
Список всего, что вы хотите знать об UNO...............................................................................47
Резюме...........................................................................................................................................48
Глава 4. Использование макросов с электронными таблицами...........................................49
Открытие и закрытие электронных таблиц...............................................................................49
Манипулирование ячейками электронной таблицы.................................................................50
- i -

Оглавление
Использование встроенных функций OOo............................................................................52
Именованные рабочие листы и ячейки......................................................................................54
Доступ к существующим именованным рабочим листам и ячейкам................................54
Создание новых именованных рабочих листов и ячеек.......................................................54
Удаление рабочих листов.......................................................................................................55
Работа с несколькими электронными таблицами.....................................................................55
Использование диапазонов ячеек...............................................................................................57
Резюме...........................................................................................................................................58
Глава 5. Форматирование электронных таблиц.......................................................................59
Самое основное форматирование — размеры столбца и строки............................................59
Оптимизация ширины столбца.............................................................................................60
Оптимизация ширины столбцов по всему рабочему листу................................................60
Задание фиксированной ширины и высоты .........................................................................61
Скрытие столбцов..................................................................................................................61
Форматирование печатаемой страницы ....................................................................................61
Добавление разрыва страницы..............................................................................................61
Определение Области Печати..............................................................................................61
Задание верхнего и нижнего колонтитулов ........................................................................62
Добавление номеров страниц.................................................................................................62
Задание размера страницы и ориентации...........................................................................63
Настройка имен рабочих листов................................................................................................64
Обновление информации о документе......................................................................................64
Форматирование ячеек и диапазонов ячеек..............................................................................66
Изменение стиля ячеек...........................................................................................................67
Изменение формата ячеек.....................................................................................................67
Цвета фона ячейки...........................................................................................................................................67
Цвета Текста.....................................................................................................................................................68
Шрифт ячейки..................................................................................................................................................68
Высота символов.............................................................................................................................................68
Подчеркивание.................................................................................................................................................68
Перенос по словам...........................................................................................................................................69
Формат чисел....................................................................................................................................................69
Online справочные данные .........................................................................................................70
Резюме...........................................................................................................................................71
Глава 6. Работа с Базами данных................................................................................................72
Получение доступа к Базам данных...........................................................................................72
Какие базы данных мы можем использовать?....................................................................73
Регистрация базы данных в качестве источника данных OOo.........................................73
Просмотр зарегистрированных источников данных..........................................................74
Подключение к базе данных...................................................................................................75
Доступ к таблицам базы данных..........................................................................................75
Выполнение запросов к таблицам..................................................................................................................77
Помещение всего этого в электронную таблицу......................................................................78
Загрузка данных в рабочие листы пользователя.................................................................80
Добавление новых записей в базу данных................................................................................82
Обновление Базы данных............................................................................................................84
Резюме...........................................................................................................................................85
Глава 7. Работа с другими документами....................................................................................87
Диаграммы OpenOffice.org..........................................................................................................87
Вставка простой диаграммы в электронную таблицу......................................................88
Форматирование диаграмм OpenOffice.org.........................................................................89
Размер диаграммы...........................................................................................................................................89
Заголовок диаграммы......................................................................................................................................90
Добавление подписей осей диаграммы.........................................................................................................90
Ориентация текста оси Y................................................................................................................................91
Полностью отформатированная гистограмма...............................................................................................91
Другие типы диаграмм....................................................................................................................................92
- ii -

Оглавление
Использование документов из других источников...................................................................93
Анализ фондовой биржи — Yahoo! Финансы.......................................................................93
Импорт исторического CSV файла от Yahoo! Финансы..............................................................................95
Сравнение компаний в Yahoo! Финансы.......................................................................................................99
Обработка вэб-страниц..............................................................................................................101
Резюме.........................................................................................................................................103
Глава 8. Разработка диалогов.....................................................................................................105
Использование встроенных диалогов OpenOffice.org............................................................105
Настройка окон сообщений.................................................................................................105
Настройка окон ввода..........................................................................................................106
Разработка ваших собственных диалогов...............................................................................107
Создание диалога..................................................................................................................107
Загрузка диалога....................................................................................................................108
Назначение действий диалогу.............................................................................................109
Использование информации в диалоге.................................................................................112
Заполнение элементов управления в диалоге......................................................................113
Окончательный диалог.........................................................................................................115
Поиск дополнительной информации.......................................................................................118
Резюме.........................................................................................................................................119
Глава 9. Создание завершенного приложения........................................................................120
Сделаем макросы и диалоги доступными каждому...............................................................120
Создание глобальной библиотеки........................................................................................121
Использование глобальной библиотеки для автоматизации OOo Calc................................123
Автоматическое выполнение макросов при открытии Calc...........................................123
Добавление макросов в меню OpenOffice.org Calc.................................................................125
Добавление макроса в меню вручную..................................................................................125
Распространение меню........................................................................................................128
Выполнение всего в скрытом режиме......................................................................................129
Выполнение макросов из командной строки..........................................................................130
Выполнение макросов в Linux...............................................................................................130
Выполнение макросов в MS Windows...................................................................................131
Создание фоновой или пакетной обработки...........................................................................131
Выполнение фоновой обработки в Linux............................................................................131
Выполнение фоновой обработки в Windows.......................................................................132
Отправка электронных писем...................................................................................................135
Резюме.........................................................................................................................................135
Глава 10. Использование Excel VBA.........................................................................................137
Текущее состояние.....................................................................................................................137
Поддержка OpenOffice.org Excel VBA под MS Windows....................................................138
Поддержка OpenOffice.org Excel VBA под Linux................................................................138
Установка SUSE Linux 10.1.......................................................................................................139
Сборка OpenOffice.org из исходных текстов...........................................................................140
Сборка на Linux.....................................................................................................................140
Поддержка локальных выпусков OpenOffice.org................................................................141
Импорт электронных таблиц Excel, содержащих макросы...................................................141
Открытие электронной таблицы Excel.............................................................................142
Вид кода без поддержки VBA...............................................................................................142
Вид кода с поддержкой VBA................................................................................................142
Закрытие вашей электронной таблицы.............................................................................143
Начнем с кодировать с Excel VBA в Calc.................................................................................143
Объединение кода VBA и кода OOo Basic...........................................................................144
Сравнение кода VBA и OOo Basic............................................................................................145
Упрощение кода.....................................................................................................................145
VBA — нет присваивания строк..........................................................................................145
Получение правильной позиции ячейки................................................................................146
- iii -

Оглавление
Использование именованных ячеек и диапазонов.....................................................................................147
Дополнительные примеры VBA...............................................................................................148
Использование активных ячеек и смещения ячейки..........................................................148
Использование объекта Workbooks......................................................................................148
Использование объекта Worksheets.....................................................................................149
Дополнительная информация...................................................................................................149
Резюме.........................................................................................................................................149
Алфавитный указатель...............................................................................................................150
- iv -

Предисловие
Что бы Вы сказали, если бы я попросил вас назвать то, что вызвало наибольшее влияние на западное общество во второй половине 20 века? Скорее всего нужно назвать PC — вездесущий персональный компьютер. Но это только половина истории; это не были PC непосредственно, которые вызвали революцию. В конце концов, я получил мой первый PC,
Sinclair ZX 81 в 1981, и хотя это было интересное хобби, он конечно не был изменением жизни.
К концу 80-х я использовал нечто, что любой сегодня признает как аналог PC, но он был все еще очень примитивен. Кроме управления текстовым процессором по имени Lex-WP, это был в действительности только интерфейс к серверам VAX и Unix.
Итак, что было тем, что превратило PC из полезного инструмента в важнейшую, самую главную потребность для любого бизнеса? Один ответ — Excel, мы можем даже поставить дату в начала этой революции — Ноябрь 1987 года.
Начав жизнь в качестве Multiplan'а, Excel стал доступным для каждого, кто работал с
Microsoft Windows (и кто имел деньги). Внезапно, фактически каждый крупный бизнес стал зависимым от программного обеспечения; и Microsoft стала гигантом, который мы знаем и любим сегодня.
Не очень удивительно, что Excel был настолько успешен. Это было приложение, с помощью которого вы могли организовать свою информацию для анализа и обработки данных. Вы даже могли расширить основные функциональные возможности при использовании макросов.
И это очень хорошо, что ситуация оставалась в таком состоянии до конца века.
Однако, ситуация изменилась.
В январе 1998 года был введен новый термин на совещании в городе Пало-Альто в
Калифорнии — open source. Затем в 2000 году, Sun Microsystems сообщали миру, что они собирались присоединяться к сообществу open-source; так 13-го октября 2000года родился
OpenOffice.org.
Сегодня, сфера профессиональных электронных таблиц не ограничивается только теми, которые может себе это позволить. Сегодня даже маленькая компания или отдельный пользователь может использовать Calc, и (как мы увидим в этой книге) мы можем взять основное приложение и подчинить нашему собственному желанию.
Теперь это настоящая революция.
Структура книги
Глава 1 знакомит вас с инструментами, которые понадобятся вам для записи ваших собственных макросов. К концу главы Вы привыкните к среде разработки Calc, и вы будете знать на какие кнопки нажать, чтобы сделать вашу жизнь немного легче.
Глава 2 начинает использовать основные строительные блоки, которые понадобятся вам для ваших макросов: библиотеки, модули, подпрограммы и функции. К концу главы вы напишете свой первый макрос и запустите его.
Глава 3 дает краткий обзор объектов, которые встроены в Calc, и который мы можем использовать для создания макросов, которые выполняют весьма сложные операции; мы увидим, насколько легко их использовать. Мы также видим где можно получить дополнительную информацию об этих объектах.
- 1 -

Предисловие
Глава 4 где мы действительно начнем писать макрос. Здесь Вы узнаете, как управлять содержанием одной (или несколькими) электронными таблицами — и в конце концов, это — то, для чего мы здесь, не так ли?
Глава 5 покажет, как мы можем форматировать данные, содержащиеся в нашей электронной таблице — не имеет значения, насколько точны наши данные, если все столбцы перекрывают друг друга, делая содержимое не читаемым.
Глава 6 — введение в базы данных — как получить к ним доступ, как показать результаты запросов в электронной таблице, и как изменить содержимое баз данных самостоятельно.
Глава 7 объясняется, как использовать другие документы (такие как диаграммы) в Calc, и как они могут быть источниками информации; например, содержимое веб-сайтов.
Глава 8 отходит от чистого написания кода и показывает, как Вы можете построить пользовательский интерфейс — создавая ваши собственные диалоги.
Глава 9 сводит все вместе. К концу главы вы сможете создавать и распространять завершенное приложение.
Глава 10 смотрит в будущее Calc, и рассказывает что делать, если вы переходите от Excel к
Calc, но не хотите переписать весь Ваш код.
Что нужно для этой книги
Вы не должны быть программистом, чтобы использовать эту книгу, но вы должны быть знакомы с концепцией программы и тем, как простые вещи, такие как цикл, работают. Книга совместима со StarBasic, языком макросов для коммерческой версии OOo — StarOffice.
По мере вашего продвижения по книге, вы обнаружите, что некоторые из вопросов с которыми мы имеем дело относятся только к самой последней версии OOo. На момент написания, весь код в главах 2-9 был работоспособен для версии 2.0.4 для Windows и 2.0.2 для Linux. Глава 10 другая история — в ней представлено то, что действительно находится на переднем крае, а для этого вам нужна версия OpenOffice.org от Novell.
Соглашения
В этой книге, Вы найдете множество стилей текста, которые характеризуют различные виды информации. Вот некоторые примеры этих стилей, и объяснения их значения.
Есть три стиля для кода. Слова кода в тексте указаны следующим образом: “Не будем забывать, что
Main должен быть первым макросом в модуле”.
Блок кода будет представлен следующим образом:
Dim fname as String
Dim sname as String
Dim username as String
Когда мы хотим обратить ваше внимание на конкретный участок блока кода, соответствующие строки или элементы будут выделены жирным шрифтом:
Sub click_cmd_view_symbols
Dim oTxt_company as Object
Dim oLstCompanySymbol as Object oTxt_company
= oFinance_dialog getControl
(
"txt_company"
)
oLstCompanySymbol
= oFinance_dialog getControl
(
"lstCompanySymbol"
)
oLstCompanySymbol
AddItem
(
oTxt_company
Text
,
0
)
End Sub
Новые термины и важные слова выделяются жирным шрифтом. Слова, которые вы видите на экране, в меню или диалоговых окон, например, представлены в нашем тексте следующим образом: “нажатие кнопки Далее перемещает Вас в следующий экран”.
- 2 -

Соглашения
Предупреждения или важные примечания появляются в обрамлении подобно этому.
Советы и подсказки выглядят подобно этому.
Обратная связь с читателем
Отклики наших читателей всегда приветствуются. Сообщите нам, что Вы думаете об этой книге, что вам нравится или, возможно, не нравится. Обратная связь с читателем важна для нас для совершенствования книги, что Вы действительно получили максимум от нее. Чтобы послать нам отзыв общего характера, просто отправьте письмо на адрес feedback@packtpub.com
, удостоверясь, что не забыли упомянуть название книги в теме вашего сообщения.
Если есть книга, которая вам нужна, и хотели бы видеть ее опубликованной нами, пожалуйста, пришлите нам краткое письмо в форме SUGGEST A TITLE на www.packtpub.com или по электронной почте на адрес suggest@packtpub.com
Если есть тема, в которой Вы компетентны и Вы заинтересованы в написании или издании книги, смотрите наше руководство для авторов на www.packtpub.com/authors
Поддержка
Теперь, когда Вы — гордый владелец книги , у нас есть ряд советов, которые помогут Вам получить максимальную выгоду от покупки.
Загрузка примеров кода для книги
Посетите http://www.packtpub.com/support и выберите эту книгу из списка книг для скачивания каких-либо примеров кода или дополнительных ресурсов для этой книги.
Отобразятся файлы, доступные для загрузки.
Загружаемые файлы содержат инструкции по их использованию.
Опечатки
Хотя мы предприняли все меры для обеспечения точности содержания, ошибки иногда случаются. Если Вы обнаружили ошибку в одной из наших книг — возможно ошибка в тексте или коде — мы были бы признательны, если вы сообщите нам об этом. Делая это Вы можете оградить других читателей от разочарований и поможете улучшить последующие версии этой этой книги. Если вы обнаружите какие-либо опечатки, сообщите о них, посетив http://www.packtpub.com/support
, выберите вашу книгу, нажмите на ссылку Submit
Errata, и укажите подробную информации об опечатке. После того как ваши исправления были проверены, ваши замечания будут приняты и исправления добавлены в список существующих исправлений. Существующие исправления можно увидеть, выбрав соответствующее название на http://www.packtpub.com/support
- 3 -

Предисловие
Вопросы
Вы можете связаться с нами по адресу questions@packtpub.com
, если у вас возникли проблемы с какой-либо из книг, и мы сделаем все от нас зависящее для их решения.
- 4 -



Поделитесь с Вашими друзьями:
  1   2   3   4   5   6   7   8   9


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал