
- •Полезная информация по Макросам для OpenOffice - русский перевод
- •Оглавление
- •Введение
- •Сокращения и обозначения
- •Предисловие переводчика BuhCia
- •Доступные ссылки
- •Включенный материал
- •Ссылки на сайты
- •Переводы настоящего документа
- •Начало: концепция
- •Мой первый макрос: “Hello World”
- •Группировка текста программ
- •Отладка
- •Переменные, константы, строки и числовые типы
- •Обращение к объектам и создание объектов (Objects) в OpenOffice
- •Что же такое uno?
- •Структуры
- •Интерфейсы
- •Сервисы (Services)
- •Интерфейсы и сервисы (services)
- •Каков тип данного объекта?
- •Какие методы, свойства, интерфейсы и сервисы поддерживаются?
- •Языки, отличные от Basic
- •Метод CreateUnoService
- •Глобальная переменная ThisComponent
- •Глобальная переменная StarDesktop
- •Методы и свойства доступа к объектам в зависимости от языка
- •Примеры
- •Отладка и проверка макросов
- •Определить тип документа
- •Вывод всех интерфейсов, методов и свойств объекта
- •Средство X-Ray досюда
- •Начало (Dispatch): использование универсального сетевого объекта Universal Network Objects (uno)
- •Изменения механизма отправки (Dispatcher) в версии 1.1 oOo
- •Использование механизма отправки (dispatcher) требует пользовательского интерфейса.
- •Изменение меню - пример механизма отправки (dispatcher)
- •Прерывание команд меню с использованием Basic
- •Разные примеры
- •Вывод текста в строку состояния
- •Вывод всех стилей текущего документа
- •Пройтись по всем открытым документам
- •Вывести фонты и другую информацию об экране
- •Вывод поддерживаемых фонтов
- •Установка фонта по умолчанию с использованием ConfigurationProvider
- •Печать текущего документа
- •Печать текущей страницы
- •Другие параметны печати
- •Ландшафтная печать
- •Информация о конфигурации
- •Версия oOo
- •Язык (локаль) oOo
- •Открыть и закрыть документы (и рабочий стол)
- •Закрыть OpenOffice и/или документы
- •Что, если документ (файл) изменен?
- •Загрузка документа по адресу url
- •Полный пример
- •Сохранить документ с паролем
- •Создание нового документа на основе шаблона
- •Как разрешить макросы с помощью LoadComponentFromUrl
- •Обработка ошибок при загрузке документа
- •Пример использования Mail Merge для объединения всех документов в папке
- •Загрузка/Вставка графики в документ
- •Преобразование графического объекта как ссылки во встроенный графический объект.
- •Danny Brewer вставляет встроенный графический объект
- •Вставить графический объект, использую диспетчер (dispatch)
- •Встроить графический объект прямым методом
- •Установка полей
- •Установка размера бумаги
- •Вызов внешней программы (Internet Explorer) с помощью ole
- •Использовать команду Shell для файлов, содержащих пробелы
- •Чтение и Запись числа в файл
- •Создать числовой стиль формата
- •Посмотреть существующие числовые стили формата
- •Возвращает массив чисел Фибоначчи
- •Вставка теккста в качестве закладки (Bookmark)
- •Сохранение и экспорт документа
- •Поля пользователя
- •Информация о документе
- •Текстовые поля
- •Мастер-поля (Master)
- •Удаление текстовых полей
- •Вставка адреса url в ячейку oOo Calc
- •Добавление в текстовое поле установки выражения (SetExpression TextField)
- •Типы данных, определенные пользователем
- •Проверка орфографии, переносы и толковый словарь - тезаурус
- •Изменение указателя мыши
- •Установка фона страницы (Page Background)
- •Работа с буфером (clipboard)
- •Копировать ячейки электронной таблицы с помощью буфера системы Clipboard
- •Скопировать ячейки электронной таблицы без использования буфера системы
- •Получение типа содержимого (content-type) буфера системы Clipboard
- •Сохранение строки в буфер системы clipboard
- •Просмотреть буфер системы clipboard как текст
- •Альтернатива буферу системы clipboard – перемещаемое содержимое (transferable content)
- •Установка локали (языка)
- •Установки локали для выделенного текста
- •Автотекст (Auto Text)
- •Десятичные футы и дроби
- •Преобразовать число в слова
- •Отправка электронного письма
- •Библиотеки макросов
- •Словарь
- •Контейнер библиотеки модулей
- •Библиотеки
- •Где хранятся библиотеки?
- •Контейнер библиотек
- •Предупреждение о неопубликованных сервисах
- •Что означает загрузить (load) библиотеку?
- •Распространение и развертывание библиотеки
- •Установка размеров точечного рисунка (Bitmap)
- •Вставить, изменить размер, указать позицию изображения в документе oOo Calc.
- •Экспортировать изображение, задав его размер
- •Нарисовать линию в документе oOo Calc
- •Извлечение файла Zip
- •Другой пример Zip-файла
- •Упаковать в формат Zip целые папки
- •Выполнить макрос по строке с его именем
- •Выполнить макрос из командной строки
- •Выполнить указанный макрос в документе
- •Использование "приложения по умолчанию" для открытия файла
- •Распечатка перечня фонтов
- •Получить для документа: адрес url, имя файла и папку
- •Получить и установить текущую папку (directory)
- •Запись файла
- •Логический разбор синтаксиса (Parsing) xml
- •Работа с датами Dates
- •Встроен ли OpenOffice в Веб-браузер?
- •Активизировать (поставить на первый план) новый документ
- •Каков тип документа (основываясь на адресе url)
- •Соединиться с удаленным сервером oOo с использованием Basic
- •Панели инструментов
- •Создание панели инструментов для типа компонентов
- •Моя первая панель инструментов (toolbar)
- •Макросы электронных таблиц Calc
- •Является ли этот документ электронной таблицей?
- •Вывести для ячейки электронной таблицы значение (value), строковое значение (string) и формулу (formula)
- •Установить для ячейки электронной таблицы значение (value), формат (format), текстовое значение (string) и формулу (formula)
- •Ссылка на ячейку в другом документе
- •Очистка ячейки
- •Выделенный (Selected) текст - что это?
- •Простой пример обработки выделенных ячеек
- •Получить активную ячейку игнорировать остальное
- •Выделить (Select) ячейку
- •Удобный для чтения (Human readable) адрес ячейки
- •Вставить форматированную дату в ячейку
- •Более короткий путь для этого
- •Вывести выделенный интервал ячеек (selected range) в окно сообщения
- •Заполнить выделенный интервал ячеек заданным текстом
- •Некоторые данные и статистика о выделенном интервале ячеек
- •(Именованный) Интервал ячеек базы данных
- •Определить выбранные ячейки в качестве (именованного) интервала ячеек базы данных
- •Удалить (именованный) интервал ячеек базы данных
- •Границы таблицы
- •Интервал ячеек для сортировки
- •Вывести все данные столбца
- •Использование методов объединения (Outline, Grouping)
- •Защита данных
- •Установка текстов верхнего и нижнего заголовков
- •Копирование ячеек электронной таблицы
- •Копирование листа целиком в новый документ
- •Выделить именованный интервал ячеек (named range)
- •Выделить столбец целиком
- •Выделить строку целиком
- •Преобразовать данные из столбца определенного вида в строки
- •Включить/Выключить автоматический пересчет
- •Какие ячейки листа используются?
- •Поиск в электронной таблице Calc
- •Напечатать интервал ячеек электронной таблицы
- •Объединена ли эта ячейка (с другими)?
- •Написать свою функцию электронной таблицы Calc
- •Функции Calc, определенные пользователем
- •Оценка и проверка аргументов
- •Каков тип возвращаемого значения
- •Не изменяйте значений других ячеек электронной таблицы
- •Макросы текстового документа (Writer)
- •Что такое выделенный текст?
- •Находится ли курсор в текстовой таблице?
- •Можно ли проверить текущее выделение для текстовой таблицы (TextTable) или ячейки (Cell)?
- •Что такое текстовые курсоры (Text Cursors)?
- •Нельзя передвинуть курсор к "якорю" (anchor) TextTable.
- •Вставка чего-либо перед (или после) текстовой таблицы.
- •Можно передвинуть курсор на закладку (Bookmark anchor).
- •Вставка текста в место закладки
- •Работа с текстом (Andrew's Selected Text Framework)
- •If ничего не выделено then
- •Выделен ли текст?
- •Как получить выделенную область (Selection)
- •Выделенный текст: Какой конец - начало, какой - конец
- •Работа макроса с выделенным текстом (Selected Text Framework Macro)
- •Непригодный фрейм (Rejected Framework)
- •Приемлемый способ (Framework)
- •Основной рабочий макрос
- •Подсчет числа предложений
- •Удаление пустых промежутков текста и пустых строк, более подробный пример
- •Определение пробела (White Space)
- •Последовательности символов для удаления
- •Стандартный макрос перебора выделенного текста
- •"Рабочий" макрос
- •Удаление пустых параграфов, другой пример
- •Выделенный текст, вопросы скорости выполнения, подсчет слов
- •Поиск в выделенном тексте для подсчета слов
- •Использование строк (Strings) для подсчета числа слов
- •Использование курсора (Character Cursor) для подсчета числа слов
- •Использование курсора слов (Word Cursor) для подсчета числа слов
- •Итоговые размышления о подсчете числа слов и скорости выполнения
- •Подсчет слов: нужно использовать вот этот макрос!
- •Замена выделенного пробела с использованием строк (Strings)
- •Сравнение макросов, основанных на курсорах, и макросов, основанных на извлечении строк (String)
- •Установка атрибутов текста
- •Вставить текст
- •Вставить новый параграф (paragraph)
- •Вставить форматированное поле даты в документ oOo Writer
- •Вставка примечания (аннотация)
- •Вставка новой страницы
- •Удаление разрывов страниц
- •Установить стиль страницы в документе
- •Включение и выключение верхних и нижних заголовков
- •Вставить ole-объект
- •Установка стиля параграфа (Paragraph)
- •Создать свой собственный стиль
- •Поиск и замена
- •Замена текста
- •Поиск в выделенном тексте
- •Сложный поиск и замена
- •Поиск и замена с атрибутами и регулярными выражениями (Regular Expressions)
- •Искать только первую текстовую таблицу
- •Изменение строчных букв на прописные и наоборот (Case) в словах
- •Перебор параграфов (поведение текстового курсора)
- •Форматирование параграфов с макросами (пример)
- •Находится ли курсор в последнем параграфе
- •Что означает перебрать содержимое текста?
- •Перебор текста и поиск текстового содержимого (content)
- •Но я только хочу найти графические объекты
- •Найти текстовое поле, содержащееся в текущем параграфе?
- •Где находится курсор дисплея (Display Cursor)?
- •Какой курсор нужно использовать для удаления строки или параграфа
- •Удалить текущую страницу
- •Вставка индекса или оглавления (table of contents)
- •Вставка адреса url в документ oOo Writer
- •Сортировка текста
- •Нумерация структур (Outline)
- •Текстовые секции (sections)
- •Встивить текстовую секцию, установка столбцов и значений ширины
- •Сноски на странице (Footnotes) и сноски в конце текста (Endnotes)
- •Текстовые таблицы
- •Поиск текстовых таблиц
- •Где находится текстовая таблица
- •Перебор (Enumerating) всех текстовых таблиц.
- •Перебор ячеек в текстовой таблице.
- •Простые текстовые таблицы
- •Форматирование простой текстовой таблицы
- •Что такое сложная текстовая таблица
- •Перебор ячеек в любой текстовой таблице
- •Извлечение данных из простой текстовой таблицы
- •Курсоры таблицы и интервалы ячеек
- •Интервалы ячеек (Cell ranges)
- •Использование интервала ячеек для очистки ячеек
- •Данные диаграммы (Chart data)
- •Ширина столбцов
- •Установка оптимальной ширины столбца
- •Насколько широка текстовая таблица?
- •Курсор в текстовой таблице
- •Установить курсор после текстовой таблицы
- •Создание текстовой таблицы
- •Форматирование макроса
- •Утилиты для строк и массивов
- •Специальные символы и числа в строках
- •Массивы строк
- •Утилиты для поиска разделов/секций с кодами макросов
- •Основной модуль макроса
- •Первичные точки входа
- •Основной рабочий макрос
- •Введение
- •Диалоги
- •Элементы управления
- •Текст/метка элемента управления (Control Label)
- •Управляющая кнопка (Button)
- •Поле текста (Text Box)
- •Поле списка (List Box)
- •Комбинированное поле: ввод с присоединенным списком (Combo Box)
- •Поле флажка (Check Box)
- •Кнопка "радио" (включена/выключена) (Option/Radio Button)
- •Индикатор выполнения (Progress Bar)
- •Получение элементов управления (Controls)
- •Управление размерами и местоположением элементов управления по именам
- •Какой элемент управления вызвал обработку и где он расположен?
- •Выбор файла с использованием диалога (File Dialog)
- •Центрировать диалог на экране
- •Установить перехватчик события (event listener) для элемента управления
- •Управление диалогом я не создал.
- •Вставка формулы
- •Раскрытие доступного содержимого (автор Andrew)
- •Выполнение манипуляций с диалогом Опции (Options)
- •Листинг поддерживаемых принтеров
- •Поиск открытого окна
- •Исследование доступного содержимого (автор ms777)
- •База данных (Database)
- •Пример по инвестициям (Investment)
- •Использование только простых процентов
- •Сложные проценты
- •Обработчики (Handlers) и перехватчики (Listeners)
- •XKeyHandler пример
- •Перехватчик (Listener), описанный автором Paolo Mantovani
- •Функция CreateUnoListener (создать перехватчик)
- •Хорошо, но что этот макрос делает?
- •Как я знаю, какие методы создавать?
- •Пример 1: com.Sun.Star.View.XSelectionChangeListener
- •Пример 2: com.Sun.Star.View.XPrintJobListener
- •Пример 3: com.Sun.Star.Awt.XKeyHandler
- •Небольшие дополнения от автора Andrew
- •Замечания о клавишах модификации (Ctrl и Alt)
- •Пример 4: com.Sun.Star.Awt.XMouseClickHandler
- •Пример 5: Ручная привязка к событиям
- •Что произошло с моим перехватчиком ActiveSheet?
- •Язык (Language)
- •Страшные глобальные переменные (Global) и статические (Statics)
- •Булевские переменные
- •Целые переменные (Integer)
- •Использовать тип переменной Object или Variant
- •Константы (Constants)
- •Массивы (Arrays)
- •Опция начала индексов массивов Option Base
- •Изменение числа элементов массива ReDim
- •Изучение объектов
- •Операторы сравнения
- •Функции (Functions) и процедуры (SubProcedures)
- •Необязательные параметры
- •Передача параметров по ссылке (By Reference) или по значению (Value)
- •Рекурсия (Recursion)
- •Управление последовательностью выполнения программы (Flow Control)
- •Операторы If Then Else
- •Оператор Choose
- •Оператор Select Case
- •Выражения в операторах Case
- •Простой, но неправильный пример
- •Неверный пример с интервалом
- •Неверный пример с интервалом
- •Интервалы, правильный способ
- •Цикл While...Wend
- •Переход к процедуре GoSub
- •Оператор GoTo
- •Конструкция On ... GoTo
- •Операторы Exit
- •Обработка ошибок
- •Определяем, как обрабатывать ошибку
- •Написать обработчик ошибок
- •Пример обработки ошибок
- •Операторы и их старшинство Operators и Precedence
- •Действия со строками
- •Удалить символы из строки
- •Удалить текст из строки
- •Печать кодов ascii символов строки
- •Удалить все экземпляры заданной подстроки из исходной строки
- •Работа с числами
- •Работа с датами
- •Работа с файлами
- •Операторы в выражениях, операторы программы, функции
- •Оператор вычитания (-)
- •Оператор умножения (*)
- •Оператор деления (/)
- •Оператор and
- •Функция Abs
- •Функция создания массива Array
- •Функция Asc
- •Функция atn (арктангенс)
- •Оператор Beep
- •Функция Blue
- •Ключевое слово ByVal
- •Ключевое слово Call
- •Функция cBool
- •Функция cByte
- •Функция cDate
- •Функция cDateFromIso
- •Функция cDateToIso
- •Функция cDbl
- •Оператор ChDir - нежелателен
- •Оператор ChDrive - нежелателен
- •Функция Choose
- •Функция Chr
- •Функция cInt
- •Функция cLng
- •Оператор Close
- •Оператор константы Const
- •Функция ConvertFromUrl
- •Функция ConvertToUrl
- •Функция косинуса Cos
- •Функция создания диалога CreateUnoDialog
- •Функция CreateUnoService
- •VMessage.Setsubject("Это моя тестовая тема письма")
- •Функция CreateUnoStruct
- •Функция cSng
- •Функция cStr
- •Функций CurDir
- •Функций Date
- •Функция DateSerial
- •Функция DateValue
- •Функция Day
- •Оператор объявления Declare
- •Оператор DefBool
- •Оператор DefDate
- •Оператор DefDbl
- •Оператор DefInt
- •Оператор DefObj
- •Оператор DefVar
- •Оператор Dim
- •Функция DimArray
- •Функция Dir
- •Операторы Do...Loop
- •Оператор End
- •Функция Environ
- •Функция eof
- •Функция EqualUnoObjects
- •Оператор eqv
- •Функция Erl
- •Функция Err
- •Оператор Error не работает так, как описано
- •Функция Error
- •Оператор Exit
- •Функция Exp
- •Функция FileAttr
- •Оператор FileCopy
- •Функция FileDateTime
- •Функция FileExists
- •Функция FileLen
- •Функция FindObject
- •Функция FindPropertyObject
- •Фунукция Fix
- •Конструкция For...Next
- •Функция Format
- •Функция FreeFile
- •Функция FreeLibrary
- •Оператор Function
- •Оператор Get
- •Функция GetAttr
- •Функция GetProcessServiceManager
- •Функция GetSolarVersion
- •Функция GetSystemTicks
- •Ключевое слово GlobalScope
- •Оператор GoSub
- •Оператор GoTo
- •Функция Green
- •Функция HasUnoInterfaces
- •Функция Hex
- •Функция Hour
- •Оператор If
- •Функция iif
- •Оператор Imp
- •Оператор Input
- •Функция InputBox
- •Функция InStr
- •Функция Int
- •Функция IsArray
- •Функция IsDate
- •Функция IsEmpty
- •Функция IsMissing
- •Функция IsNull
- •Функция IsNumeric
- •Функция IsObject
- •Функция IsUnoStruct
- •Функция Kill
- •Функция lBound
- •Функция lCase
- •Функция Loc
- •Функция Lof
- •Функция Log
- •Оператор Loop
- •Оператор lSet
- •Функция lTrim
- •Ключевое слово Private
- •Ключевое слово Public
- •Функция Red
- •Оператор rSet
- •Функция Shell
- •Функция uBound
- •Функция uCase
- •Программисты на Visual Basic
- •Активная рабочая книге ActiveWorkbook
- •Активный лист и активная ячейка (ActiveSheet и ActiveCell)
- •Дополнения переводчика BuhCia
- •Пример макроса, исправляющего оглавление.
- •Алфавитный указатель (Index)
Полезная информация по Макросам для OpenOffice - русский перевод
(Это первая редакция перевода, которую можно улучшать. Замечания и предложения прошу buhcia2006 dog yandex dot ru. Примечания переводчика помечены словом BuhCIA. В остальных случаях "Я", "Моя" означает автора оригинала Andrew Pitonyak)
Useful Macro Information For OpenOffice By (Автор) Andrew Pitonyak
Эта статья не совсем совпадает с книгой Andrew Pitonyak: OpenOffice.org Macros Explained. Книга более полна и лучше организована. Статья, скорее, случайная подборка мыслей и примеров.
Редакция оригинала статьи: July 22, 2007 at 23:0413:07:00 PM Document Revision: 1012
Оригинал документа часто редактируется и доступен по адресу: http://www.pitonyak.org/AndrewMacro.odt
Thank You
Thanks to my wife Michelle Pitonyak for supporting and encouraging me to write this document. Thank you Laurent Godard (and the French translation team) for your good ideas and hard work. Thanks to Hermann-Josef Beckers for his German translation. Robert Black Eagle you were tireless and offered excellent insight, not to mention your wonderful Master Document “Howto”. Kelvin Eldridge, you have great understanding and have helped me understand numerous bugs. Jean Hollis Weber and Solveig Haugland, thank you for the personal replies when I had specific document usage problems. Sasa Kelecevic, and Hermann Kienlein, you have provided many working examples to help me. Andreas Bregas, thank you for the quick replies, descriptions, and fixes. Mathias Bauer, thank you for the explanations and examples revealing the deep mysteries of the internals. I owe a large thank you to the entire open-source community and the mailing lists for providing helpful information and support. Finally, I should thank Jean Hollis Weber and C Robert Pearsall for agreeing to be technical editors for my book due for publication in August of 2004. Thanks to Christian Junker, for reviewing and making extensive changes and additions to the document – Christian spent numerous hours proofreading and providing updates.
Disclaimer
The material in this document carries no guarantee of applicability, accuracy, or safety. Use the information and macros in this document at your own risk. In the unlikely event that they cause the loss of some or all of your data and/or computer hardware, that neither I, nor any of the contributors, will be held responsible.
Contact Information
Andrew Pitonyak • 6888 Bowerman Street West • Worthington, OH 43085 • USA home: andrew@pitonyak.org• work:
home telephone: 614-438-0190 • cell telephone: 614-937-4641
Credentials
I have two Bachelors of Science degrees, one in Computer Science and one in Mathematics. I also have two Masters of Science degrees, one in Applied Industrial Mathematics and one in Computer Science. I have spent time at Oakland University in Rochester Michigan, The Ohio State University in Columbus Ohio, and at The Technical University Of Dresden in Dresden Germany.
Public Documentation License Notice
The contents of this Documentation are subject to the Public Documentation License Version 1.0 (the "License"); you may only use this Documentation if you comply with the terms of this License.
A copy of the License is available at http://www.openoffice.org/licenses/pdl.pdf
The Original Documentation is http://www.pitonyak.org/AndrewMacro.odt Обязательное приложение согласно лицензии:
Contribution |
Contributor |
Contact |
Copyright |
Original author |
Andrew Pitonyak |
andrew@pitonyak.org |
2002-2007 |
French translation |
The French Native-lang documentation project |
doc@fr.openoffice.org |
2003 |
German Translation |
Hermann-Josef Beckers |
hjb-rheine@t-online.de |
2003 |
Macros |
Hermann Kienlein |
info@kienlein.com |
2002-2003 |
Macros |
Sasa Kelecevic |
scat@teol.net |
2002-2003 |
Editing and additions |
Christian Junker |
usboy2004@web.de |
2004 |
Русский перевод Russian translation |
BuhCIA |
http://buhcia.narod.ru |
2007 |