Semenalidery.com

IT Новости из мира ПК
22 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как включить макросы в опен офис

Макросы, диалоги и библиотеки (Basic)

Одним из свойств Open Office.org, которое некоторые пользователи упускают из вида, является встроенный язык программирования OpenOffice.org Basic. Для чего нужно встраивать язык программирования в ваш текcтовый процессор? Именно для того, чтобы автоматизировать часто выполняемые задачи. Чай за тебя не приготовит, но позволит автоматизировать часто выполняемую работу с минимумом усилий.

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

Создание макроса OpenOffice.org

Итак, как начать модификацию OpenOffice.org Writer с целью сделать его немножечко лучше? Для начала вы должны создать подпрограмму Basic или функцию, которые обычно именуются макросами.

Перейдите в меню Writer и кликните на пункте Сервис. Вы увидете подменю, называемое Макросы. Если вы поместите указатель мыши на него, увидете опции макросов, доступные для вас. Нас в данный момент интересует пункт Управление макросами. Из следующего подменю выберите OpenOffice.org Basic. .

Вам представится окно диалога, которое позволит выбрать новый макрос или выбрать уже существующий для редактирования. По умолчанию приложение создаст макрос с именем Main. Вы обнаружите, что находитесь в окне редактирования макроса и вы увидите нечто похожее на следующее:

Теперь вы сможете создать свой первый макрос. По традиции начнем с «Hello, world»

Выполнение макроса

Естественно, вы захотите увидеть результат вашей тяжкой работы. Вернитесь в окно OpenOffice.org Writer. Перейдите в меню и опять выберите меню Сервис -> Макросы. Теперь вы можете использовать либо пункт Управление макросами, либо просто использовать кнопочку Выполнить макрос на панели инструментов.

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

Более сложный макрос

Теперь посмотрим на макрос OpenOffice.org Basic, который имеет практическое применение. Следующий пример макроса преобразует документ, который использует Английский язык Великобритании в Американский Английский диалект.

Если вы прежде использовали Visual Basic или VBScript в Windows, вы должны узнать основной формат и функциональность. Если нет, возможно, понадобится небольшое объяснение.

Записаны две подпрограммы: toUsaSpelling и doReplace. Подпрограмма toUsaSpelling создает два массива searchArray и replaceArray, содержащие английские слова и их американские эквиваленты. Она (подпрограмма) далее пошагово перебирает вышеупомянутый массив и вызывает подпрограмму doReplace, которая через две входные переменные и заменяет одно слово другим во всем документе OpenOffice.org.

OpenOffice.org Basic использует все типы привычных циклов и управляющих структур, которые вы найдете в любом языке программирования, наравне с некоторыми, пришедшими непосредственно из Visual Basic. Например, doReplace использует функцию ubound,котроая возвращает наибольший номер индекса массива. Эта функция полезна в циклах, так как в этом случае вам не надо отслеживать текущий размер массива.

Заметьте, что doReplace ссылается на ThisComponent. ThisComponent представляет текущий документ OpenOffice.org.

Следующее: Вставка информации из внешнего файла.

Заполнение данных в таблицы может стать самой затратной по времени частью при создании отчета, но таблицы делают документ более читабельным, так что стоит побеспокоиться об автоматизации процесса. Следующий макрос открывает файл и загружает данные из него в таблицу. Таким образом, таблица заполняется значениями полей имени пользователя и домашней директории из файла /etc/passwd:

Sub doPasswdTable
Dim filenumber As Integer
Dim lineNumber As Integer
Dim lineCount As Integer
Dim iLine As String
Dim file as String
Dim doc as object
Dim table as object
Dim cursor as object
Dim cellname as object
Dim cell as object
file = «/etc/passwd»
‘Get line count
lineCount = 0
filenumber = Freefile
Open file For Input As filenumber

While not EOF(filenumber)
Line Input #filenumber, iLine
If iLine <> «» then
lineCount = lineCount + 1
end if
wend
Close #filenumber

doc = thisComponent
cursor=doc.text.createTextCursor()
table=doc.createInstance(«com.sun.star.text.TextTable»)
table.initialize(lineCount+1,2)
doc.Text.insertTextContent(cursor,table,False)

cell = table.getCellByName(«A1»)
cell.string=»Username»
cell = table.getCellByName(«B1»)
cell.string=»Home Directory»

filenumber = Freefile
lineNumber = 2
Open file For Input As filenumber
While not EOF(filenumber)
Line Input #filenumber, iLine
If iLine <> «» then
Dim iArray
iArray = split(iLine,»:»)
cell = table.getCellByName(«A» & lineNumber)
cell.string=iArray(0)
cell = table.getCellByName(«B» & lineNumber)
cell.string=iArray(5)
lineNumber = lineNumber + 1
end if
wend
Close #filenumber
End Sub

Большая часть кода достаточно стандартна — вы можете видеть пример операторов циклов while..wend и if..end if. Вы также можете обратить внимание на оператор doc=thisComponent; который позволяет нам ссылаться на doc вместо более длинного обозначения thisComponent.

Неочевидная деталь: синтаксис Basic не регистрозависимый. Поэтому оператор cell = table.getCellByName(«A» & lineNumber) будет выполняться так же, как CELL = table.getcellbyname(«A» & LINENUMBER). Мы применяем верхние и нижние регистры только для того, чтобы было легче читать.

Строка filenumber = Freefile присваивает значение уникального идентификатора ID переменной номера файла для того, чтобы вам не было необходимым запоминать любые другие уже назначенные ID.

Команда split особенно полезна. Она получает в качестве входных данных строку и возвращает массив подстрок данной строки, разбитой по разделителю, который вы указали. В вышеприведенном примере мы использовали двоеточие (:) для определения разделителя в файле паролей.

И последнее: одна строка может показаться странной на первый взгляд: Open file For Input As filenumber.
Она указывает на тот факт, что мы используем это как вход для подпрограммы, а не то, что мы собираемся в неё что-то передавать

В заключение:

Мы привели кратчайшее из возможных введений в использование Basic в OpenOffice.org Writer. Мы не рассматривали использование форм, вызовы из других документов, или то, как получать данные из баз данных.

Если вы хотите узнать больше о программировании в OpenOffice.org Basic, то OpenOffice.org поставляется со справкой, в которой есть список всех функций и процедур, которые возможны [1] .

OpenOffice.org Basic — полезный инструмент для автоматизации каждодневных задач — ещё один путь для более разумного подхода к работе.

Обсудить на форуме.

    Читайте оригинальную статью здесь: http://www.linux.com/

  • Файл с текстом перевода и примерами макросов
    • [1] правильнее — «определены» прим.пер.

    Пишем макросы для OpenOffice.org

    Макросы используются для автоматизации различных действий в OpenOffice.org. Макрос поможет автоматизировать действия, которые потребовали бы длительных ручных манипуляций с возможными ошибками. В настоящее время автоматизированные действия наиболее легко выполняются написанием макросов на OOo Basic (OpenOffice.org поддерживает и ряд других языков, например, Python). Синтаксис OOo Basic подобен многим разновидностям Basic (Visual Basic, VBA, VBScript и т.д.), и здесь не описывается. Данная статья является введением в мир макросов OpenOffice.org и рассматривает самые общие вопросы, связанные с программированием макросов в OpenOffice.org. Цель статьи — предельно кратко обозначить основные направления в программировании макросов OpenOffice.org для программистов, уже немного знакомых с другими разновидностями Basic.

    Hello, World!

    Параметры безопасности макросов задаются через меню «Сервис» — «Параметры» — «OpenOffice.org» — «Безопасность», кнопка «Безопасность макросов. «.

    Откройте новый документ OOo. Используйте меню «Сервис» — «Макросы» — «Управление макросами» — «OpenOffice.org Бэйсик. » (Alt+F11), чтобы запустить диалог «Макрос OpenOffice.org Basic». В левой части диалога найдите документ, который вы только что открыли (например, он называется «Безымянный1»). Разверните дерево этого документа и установите курсор на дочернем элементе «Standard». Нажмите справа кнопку «Создать» для создания нового модуля и задайте ему имя. Откроется среда разработки OOo Basic. Наберите код макроса:

    Читать еще:  Где взять майкрософт офис бесплатно

    Для запуска макроса нажмите клавишу F5 в среде разработки OOo Basic. Естественно, запустить этот макрос можно и в диалоге «Сервис» — «Макросы» — «Управление макросами» — «OpenOffice.org Бэйсик. » (Alt+F11), кнопкой «Выполнить».

    OOo Basic основан на процедурах и функциях, который задаются ключевыми словами Sub и Function. Каждый модуль содержит набор процедур (функций). Библиотека содержит набор модулей. Документ может содержать несколько библиотек. Библиотеки могут существовать также на уровне приложения в целом.

    Среда разработки OOo Basic имеет средства отладки, такие, как установка точек прерывания и наблюдаемых переменных. Вы можете также выполнять макросы по шагам.

    Исследование объектов

    При программировании часто бывает необходимо выяснить, какие свойства и методы поддерживает тот или иной объект, или вообще выяснить, что это за объект, например, просто для того, чтобы найти по нему справку.

    Доступ к текущему документу и рабочему столу обеспечивают глобальные переменные ThisComponent и StarDesktop, которые всегда доступны.

    Вы можете узнать, поддерживает ли объект конкретный сервис:

    Метод объектов getImplementationName() возвращает полное имя данного объекта. Используйте полное имя объекта для поиска в Интернете или в Руководстве разработчика:

    Метод объектов getSupportedServiceNames() возвращает перечень всех сервисов, поддерживаемых объектом:

    Простой способ выяснить, что может делать данный объект — это вызов следующих трех методов:

    Макрос WritedbgInfo(object), поставляемый с OOo, выводит информацию трёх вышеуказанных методов в окно документа OOo Writer:

    Некоторые характерные приёмы OOo Basic

    Метод CreateUnoService() — это короткий путь вместо вызова global service manager и затем вызова createInstance() для этого менеджера.

    Приведённый выше вызов заменяет следующие два примера:

    В языке OOo Basic глобальная переменная ThisComponent ссылается на текущий документ или на документ, из которого был вызван данный макрос. Переменная ThisComponent получает свое значение один раз, когда макрос стартует, и не изменяется, даже если этот макрос делает текущим другой документ. Если активным является компонент другого типа (не документ), то ThisComponent ссылается на последний активный документ. В других языках способом получить этот объект является использование getCurrentComponent() для объекта рабочего стола (desktop object). Глобальная переменная StarDesktop ссылается на объект рабочего стола (desktop object), который является основным приложением OOo.

    Если вы написали функцию (но не процедуру) на языке OOo Basic, вы можете вызвать ее из электронной таблицы Calc, как обычную функцию рабочего листа, в формуле ячейки.

    Библиотеки и модули

    Библиотеки макросов содержатся в следующих контейнерах:

    • Макросы OpenOffice.org (это макросы, поставляемые с OOo)
    • Мои макросы
    • Каждый открытый в данный момент документ также виден как доступный контейнер библиотеки.

    Эти контейнеры вы можете наблюдать в диалоге «Сервис» — «Макросы» — «Управление макросами» — «OpenOffice.org Бэйсик. » (Alt+F11).

    Библиотека содержит модули. Нельзя выполнить макрос, содержащийся в библиотеке, если библиотека еще не загружена. Каждый контейнер как правило имеет библиотеку с именем Standard. Модули содержат процедуры и функции, т.е. собственно макросы.

    Модули хранятся в xml-файлах с расширением xba, описания библиотек — в xml-файлах с расширением xlb, описания контейнеров — в xml-файлах с расширением xlc.

    Контейнер «Макросы OpenOffice.org» находится в папке, наподобие такой: C:Program FilesOpenOffice.org 2.3sharebasic. Контейнер «Мои макросы» находится в папке, наподобие такой: C:Documents and Settings Application DataOpenOffice.org2userbasic.

    Новые библиотеки и модули можно создать в любой момент интерактивно, через диалог «Сервис» — «Макросы» — «Управление макросами» — «OpenOffice.org Бэйсик. » (Alt+F11). В среде разработки OOo Basic текущая библиотека выбирается с помощью специального выпадающего списка на панели инструментов «Макрос» (по умолчанию этот выпадающий список вы увидите в левой верхней части экрана). Модули текущей библиотеки отображаются на вкладках, расположенных в нижней части экрана (каждый модуль на своей вкладке).

    Библиотеками можно управлять и программно. Следующая функция создаёт новую библиотеку «dummy», устанавливает на неё пароль, отображает список всех библиотек, затем удаляет библиотеку «dummy» и вновь отображает список всех библиотек:

    Когда библиотека загружена, содержащиеся в ней макросы становятся видимыми из OOo Basic. Если библиотека не загружена, вы не можете вызывать процедуры, функции и диалоги, которые в ней содержатся. Библиотека Standard всегда загружена и доступна автоматически.

    Запуск макросов

    Макросы можно выполнять непосредственно из диалога «Сервис» — «Макросы» — «Управление макросами» — «OpenOffice.org Бэйсик. » (Alt+F11), кнопкой «Выполнить».

    Макросы можно назначить на команды меню и/или кнопки панели инструментов. Меню «Сервис» — «Настройка», вкладки «Меню» и «Панели инструментов». При нажатии на кнопку «Добавить. » открывается окно «Добавить команды». Слева в списке «Категория» вы найдёте иерархию контейнеров с макросами.

    Запуск макросов программно

    Можно выполнить макрос из командной строки, подобно следующему:

    Здесь «standard» — имя библиотеки из контейнера «Мои макросы», «module1» — имя модуля, «mymacro» — имя функции (процедуры) самого макроса. При этом запустится процесс Open Office, который выполнит указанный макрос и затем завершит свою работу.

    Из командной строки можно также запустить макрос конкретного документа сразу при открытии этого документа:

    Если уже открыт, например, документ test1.odt, сработает и такая командная строка:

    Можно выполнить макрос из кода другого макроса (используются аналогичные URL), подобно следующему:

    Диалоги

    Механизм макросов OOo Basic позволяет конструировать и выводить диалоговые формы (окна диалогов) для взаимодействия с пользователем.

    Создать новый диалог можно в окне «Сервис» — «Макросы» — «Управление макросами» — «OpenOffice.org Бэйсик. » (Alt+F11), далее кнопка «Управление. «, вкладка «Диалоги». Диалоговые формы диалогов хранятся так же, как модули макросов. В среде разработки OOo Basic диалоги текущей библиотеки отображаются на вкладках, расположенных в нижней части экрана, наряду с модулями. При переходе на вкладку, соответствующую диалогу, вы попадаете в визуальный редактор форм.

    Запуск диалога можно осуществить примерно таким образом:

    Как видно, полезно иметь переменную, ссылающуюся на данный диалог, определенную вне процедуры запуска диалога, так, чтобы другие процедуры могли обращаться к диалогу (к этой переменной). Для данного примера процедура CloseDialog назначается как обработчик события «Отпускание клавиши мыши» для кнопки диалога (это можно сделать в свойствах этой кнопки в визуальном редакторе форм). После закрытия диалога процедура CloseDialog отображает содержимое текстового поля «TextField1» диалога.

    Для перебора элементов управления в диалоге используйте код наподобие следующего:

    Элементы управления могут быть размещены и прямо в документе, с помощью панели инструментов «Элементы управления». Им так же могут быть назначены макросы-обработчики событий (через свойства).

    Обработка событий

    Макрос может выполняться автоматически, когда происходит указанное событие программы, т.е. можно назначить нужный макрос нужному событию.

    Меню «Сервис» — «Настройка. «, вкладка События. В выпадающем списке «Сохранить в» можно выбрать, будет ли назначение глобально допустимым или действующим только в текущем документе (выбрать «OpenOffice.org» или имя текущего документа). Для каждого события в отображаемом здесь списке можно назначить соответствующий макрос или отменить такое назначение кнопками «Макрос. » и «Удалить».

    Программно можно назначить макросы-обработчики для большего числа событий. Например, можно обрабатывать событие изменения данных указанной ячейки Calc. Первая процедура в примере регистрирует обработчик события (вторую процедуру):

    Учимся писать макросы для OpenOffice

    Учимся писать макросы для OpenOffice

    Необходимые приемы для профессиональной работы с текстом. Показан пример с использованием макросов и регулярных выражений.

    Задача: произвести обработку текста для статей:

    • удалить все пробелы и знаки табуляции из начала и конца абзацов,
    • заменить все дефисы на тире в тексте, в том числе и в самом начале абзацев.

    Пример приводится для версии OpenOffice 2.4.0

    Стандартное решение:

    поиск и замена, нажимаем Ctrl+F

    В примере мы пишем регулярное выражение удаляющее пробелы и знаки табуляции в начале абзаца.

    Что сказать? Универсально. Но четыре раза на каждую статью писать регулярное выражение мне кажется слишком долго.

    Другое решение:

    Надо написать макрос. Это очень легко. В OpenOffice хорошая русская документация и есть встроенная поддержка регулярных выражений.

    Найдите в меню Сервис → Mакросы → Управление макросами → OpenOffice.org Бэйсик.

    Создайте макрос, например, под именем Typograph.

    ‘здесь инициализируем объекты
    Dim Doc As Object
    Dim Replace As Object

    ‘указываем объект, с которым будем работать
    Doc = StarDesktop.CurrentComponent
    ‘создаем объект типа ReplaceDescriptor
    Replace = Doc.createReplaceDescriptor
    ‘объект работает с регулярными выражениями
    Replace.SearchRegularExpression = True

    ‘удаляем знаки табуляции и пробела в начале абзаца
    Replace.SearchString = «^( |t)*»
    Replace.ReplaceString = «»
    Doc.replaceAll(Replace)

    ‘удаляем знаки табуляции и пробела в конце абзаца
    Replace.SearchString = «( |t)*$»
    Replace.ReplaceString = «»
    Doc.replaceAll(Replace)

    ‘заменяем дефис на тире в середине текста
    Replace.SearchString = » — »
    Replace.ReplaceString = » — »
    Doc.replaceAll(Replace)

    ‘заменяем дефис на тире в начале абзаца
    Replace.SearchString = «^- »
    Replace.ReplaceString = «— »
    Doc.replaceAll(Replace)
    End Sub

    Сохраните и закройте окно Бэйсика. Оно больше не нужно. Теперь надо сделать так, чтобы макрос под названием «Typograph» вызывался по нажатию, например Ctrl+Shift+D.

    Заходим в меню Сервис → Настойка:

    Установите сочетание клавиш для макроса.

    Возможно, вы увидите окно об ошибке:

    Не бойтесь. Просто вы установили себе версию OpenOffice без JRE. Нажмите несколько раз «OK» и продолжайте. Всё прекрасно работает и без JRE.

    Осталось проверить работу скрипта. Скопируйте следующий текст в редактор и нажмите Ctrl+Shift+D.

    А теперь упражнение! Усовершенствуйте макрос. Пусть он заменяет последовательность из одного или более символов пробела и табуляции на один пробел во всем тексте. Выражение для поиска последовательности пробельных символов выглядит так ( |t)+.

    Как включить макросы в опен офис

    Чтобы создать свой макрос в OpenOffice . org не обязательно быть программистом. В OpenOffice . org имеется встроенная программа регистратор которая может запоминать все действия пользователя с документом и записывать их последовательно в специальный текстовый модуль называемый Макрос.

    2.1. Запись макроса

    Для автоматического создания макроса необходимо выполнить следующие действия

    Откройте документ, для которого нужно записать макрос.

    Выберите команды Сервис => Макросы => Записать макрос.

    Откроется маленькое диалоговое окно Запись макроса с одной только кнопкой «Завершить запись» (Рис. 1).

    Выполните действия, которые хотите записать в документе.

    Нажмите клавишу ESC, чтобы снять выделение объекта, поскольку в настоящее время макрорегистратор не записывает это действие, произведенное щелчком мыши.

    Нажмите кнопку «Завершить запись».

    Откроется диалоговое окно Макрос, в котором можно сохранить и выполнить макрос (Рис.2).

    Если нужно прервать запись, не сохраняя макрос, нажмите кнопку Закрыть в диалоговом окне Макрос.

    Чтобы сохранить макрос в файле лабораторной работы, сначала в списке Сохранить макрос в выберите объект (например, Лаб.раб.7), в котором хотите сохранить макрос.

    Если нужно сохранить макрос в новой библиотеке или модуле, нажмите кнопку Новая библиотека или Новый модуль и введите имя библиотеки или модуля.

    В текстовом поле Название макроса введите имя нового макроса.

    Нажмите кнопку «Записать».

    Следующие действия не регистрируются:

    Открытие окон не регистрируется.

    Действия, выполненные в других окнах (где регистратор не запущен), не регистрируются.

    Переключение окон не регистрируется.

    Действия, не связанные с содержимым документа, не регистрируются. Например, изменения, внесенные в диалоговое окно «Параметры», организатор макросов, настройки.

    Выделения регистрируются только в том случае, если они выполняются с помощью клавиатуры (перемещением курсора), но не регистрируются при использовании мыши.

    Макрорегистратор работает только в Calc и Writer.

    Активируйте лист «Макрос», а если его нет, то переименуйте «Лист 1»;

    Заполните таблицу как на рисунке (Рис. 3)

    Выполните команду Сервис => Макросы => Записать макрос;

    С помощью автозаполнения заполните первую колонку до 10;

    Нажмите кнопку «Записать»;

    Сохраните макрос с именем «Zadanie1» в файле лабораторной работы (Рис. 4.);

    Примечание: В текущей версии (2.4) русские имена макросов не допускаются.

    Очистите в первой колонке ячейки до исходного состояния, т.е. оставьте заполнеными только первую и вторую ячейки колонки;

    Установите курсор в ячейку A 1 и выполните команду Сервис => Макросы => Выполнить макрос;

    В открывшемся окне «Выбор макроса» найдите ваш макрос и нажмите кнопку «Выполнить» (Рис. 5).

    В результате у вас должны автоматически заполнится ячейки, с 3 по 10.

    Далее мы усовершенствуем свой макрос, добавив ему возможность автоматически заполнять нужное количество ячеек, методом автозаполнение, в той колонке, в которой установлен курсор.

    2.2. Редактирование макросов

    Как мы видим, в результате выполнения упражнения 1 макрос получился очень ограниченый. Он автозаполняет только в колонке A и только до десяти, для того, чтобы сделать макрос универсальным, необходимо воспользоваться встроенным редактором разработки макросов и вручную добавить ему необходимые возможности.

    В OpenOffice . org имеется возможность разрабатывать макросы на разных языках программирования, но в данной работе мы воспользуемся OpenOffice . org Basic (Бэйсик). Это связано с тем, что этот язык более похож на макроязык Microsoft Visual Basic for Application ( VBA ) и после его освоения вы сможете без труда разобраться с подобными задачами в Microsoft Office

    Запустите редактор макросов командой Сервис => Макросы => Управление макросами => OpenOffice . org Бэйсик;

    В диалоге Макрос выберите макрос « Zadanie 1» и нажмите кнопку редактировать (Рис. 6);

    В окне редактора найдите процедуру Sub Zadanie 1 (Рис. 7.), именно эта процедура запускается на выполнение, когда вы запускаете макрос;

    Отредактируйте процедуру примерно как в листинге 2.2.1(комментарии писать не обязательно)

    Листинг 2.2.1.: Универсальный макрос автозаполнение.

    rem Блок объявления переменных

    dim document as object ‘Ссылка на обьект документ

    dim dispatcher as object ‘ссылка на объект сервис UNO

    dim Selection As object ‘Ссылка на выделенную область в документе

    dim CurRowNumber as Long ‘Номер строки на которой стоит курсор

    dim EndRowNumber as Long ‘Переменная в которую записывается введённое значение

    dim StartCell As String ‘Текстовая ссылка на текущую ячейку

    dim EndCell As String ‘Текстовая ссылка на последнюю ячейку

    rem Здесь определяем переменные для доступа к документу

    document = ThisComponent.CurrentController.Frame ‘ Текущий документ

    dispatcher = createUnoService ( «com.sun.star.frame.DispatchHelper» )

    Selection = document.Controller.Selection ‘ Выделение

    ‘ Номер текущей строки ( счёт с нуля )

    ‘ Имя текущей колонки

    CurColumnName = Selection.Columns.ElementNames (0)

    ‘ Методом конкатенации формируем адрес ячеек

    StartCell = «$» & CurColumnName & «$» & CStr ( CurRowNumber + 1 ) ‘ Начальная ячейка

    ‘Просим пользователя ввести число строк и

    ‘прибавляем это число к номеру текущей строки

    EndRowNumber = CurRowNumber+CLng ( InputBox ( «Введите число :» , «Ввод количества строк (Max 65536)» , «10» ))

    ‘адрес последней ячейки

    EndCell = «$» & CurColumnName & «$» & CStr ( EndRowNumber )

    dim args1 ( 0 ) as new com.sun.star.beans.PropertyValue

    args1 ( 0 ) . Name = «ToPoint»

    ‘Закомментируем значение введённое автоматически

    ‘и заменим нашей переменной для начальной ячейки

    args1 ( 0 ) . Value = StartCell ‘»$A$1:$A$2″

    ‘ Задание стартовой позиции

    dispatcher.executeDispatch ( document , «. uno:GoToCell» , «» , 0, args1 ())

    dim args2 ( 0 ) as new com.sun.star.beans.PropertyValue

    args2 ( 0 ) . Name = «EndCell»

    ‘Заменяем значение на переменную конечной ячейки

    args2 ( 0 ) . Value = EndCell ‘»$A$10″

    ‘ Запускаем функцию автозаполнения

    dispatcher.executeDispatch ( document , «.uno:AutoFill» , «» , 0, args2 ())

    ‘rem dim args3(0) as new com.sun.star.beans.PropertyValue

    ‘dispatcher.executeDispatch(document, «.uno:GoToCell», «», 0, args3())

    Сохраните полученный макрос командой Файл => Сохранить, в редакторе OpenOffice Basic ;

    Для назначения макросу комбинации клавиш выполните команду Сервис => Настройка и откройте вкладку Клавиатура;

    В открывшемся диалоге в поле Категория выделите модуль, в котором расположен макрос « Zadanie 1», в поле Функция выделите макрос, после чего в поле Комбинация клавиш выберите свободную комбинацию и нажмите кнопку «Заменить» (Рис.8.);

    Нажмите кнопку ОК;

    Используя комбинацию клавиш назначенную на макрос заполните список дней недели и месяцев года (Рис. 9.).

    Самостоятельно изучите диалог настройки (Сервис => Настройка) и назначтьте макрос « Zadanie 1» на панель инструментов и создайте новое меню Макросы, в которое также назначте макрос.

    Совет: Используйте справку OpenOffice . org . для выполнения заданий. (Клавиша F1 , или меню Справка => Справка по OpenOffice . org )

    Как создать макросы в OpenOffice.org и в LibreOffice и

    При переходе с Windows на Linux обычный пользователь традиционно сталкивается с проблемой поиска программ-аналогов и совместимости свободных программ с привычными, но закрытыми виндовыми аналогами. Причем просто скачать ворд и установить его в Linux не удастся (про способы инсталляции виндоовых программ через Wine сейчас речь не идет), да это и не надо. В Linux гораздо больше ассортимент офисных пакетов. Да, они разные и не все из них универсальные. Но все и не нужны. Возьмем безраспорных лидеров — OpenOffice и отпочковавшийся от него полностью свободный Libre Office.
    Это прекрасные решения для подавляющего большинства задач. Но иногда у пользователя возникает необходимость выполнить определенную последовательность действий, причем неоднократно. В виндовом ворде для этого используются макросы, скажете вы. Да! И в пакетах OpenOffice и Libre Office тоже! Далее предлагаю перевод выполненый В. Семененко статьи Джека Валлена «Создание макросов в LibreOffice и OpenOffice». Ее оригинал на английском находится здесь Creating Macros Without Scripting in LibreOffice and OpenOffice.

    Если при своей повседневной работе в LibreOffice (или OpenOffice) вы постоянно выполняете одни и те же задачи, вам стоит обратить внимание на такую возможность этих пакетов, как макросы. Вставляете ли вы одинаковый текст снова и снова, форматируете ли его, совершаете действия с большим количеством нажатий клавиш — во всех этих случаях вы можете сэкономить свое время, автоматизировав свою работу. LibreOffice (а до этого — OpenOffice) включает в себя Инструмент макросов, позволяющий быстро создавать и управлять последними.

    Большинство обычных пользователей, увидев или услышав слово «макрос» пугаются, что им придется и в самом деле создавать какие-то программы. Успокойтесь — для этого не нужно быть программистом! С помощью LibreOffice вам не нужно писать ни единой строчки скрипта. Этот пакет с открытым исходным кодом имеет простой в использовании инструмент для записи макросов и такой же удобный способ их организации быстрого доступа.

    Давайте приступим к процессу создания и управления макросами в LibreOffice. Все нижеприведенные примеры будут выполнены в этом пакете. Вы точно также можете работать в OpenOffice, так как LibreOffice является совсем недавним ответвлением OpenOffice, поэтому в нем пока мало что изменилось. Если у вас дистрибутив Linux, по умолчанию, в стандартный набор которого входит OO.org (таких на сегодняшний большинство), вам нет никакой необходимости выполнять апгрейд системы или дополнительно устанавливать LibreOffice.

    Что такое макрос

    Если сказать просто — макрос, это последовательность действий, записываемая с помощью простого меню. Когда вы выбираете запись макроса, выполняемые вами действия автоматически сохраняются в виде кода скрипта. И в дальнейшем он будет уже исполняться сам, в точности повторяя ваши манипуляции в программе. Макрос может быть как простым, так и очень сложным — все зависит от того, что вам необходимо от него. Главные критерии, которые предъявляются к макросам — это быть мощным и одновременно простым в использовании. Макросы пакета LibreOffice отвечают именно таким требованиям. Ну что же, приступим.

    Прежде чем мы приступим к созданию своего макроса, нам необходимо познакомится с инструментом для управления последними. Переходим по пути ToolsMacrosOrganize MacrosLibreOffice Basic Macros (СервисМакросыУправление макросамиLibreOffice Basic Macros):

    В левом окне отображен список установленных по умолчанию макросов. Можно выбрать любой из них для редактирования. Однако для этого вы должны знать скриптовой язык, используемый в LibreOffice для написания макросов. Целью данной статьи является изучение основ работы с помощью инструментом для записи макросов. Конечно, если вы хорошо знакомы с языком, на котором пишется код, вы можете в этом окне редактировать или создавать свои собственные — это на ваше усмотрение.

    Главная задача этого окна — выбрать нужный вам макрос, назначить ему кнопку на панели инструментов или связать его с каким-либо событием. Назначение макросу кнопки позволяет быстро выполнять наиболее часто используемые из них.

    Стоит заметить, что создание макроса в автоматическом режиме (запись) все же предполагает хотя бы небольшое знание языка, так как иногда нам понадобится его редактировать. Для того, чтобы иметь представление, как скрипт выглядит в исходном коде, достаточно выбрать любой из них и нажать кнопку Редактировать (Edit).

    Рассмотрим простой пример. Мы имеем некий текст, уже вставленный в документ и нам нужно сделать заголовок для него, так как наш текст будет использоваться в деловой переписке.

    Наш будущий макрос должен будет уметь:

    — расположить текст наверху по центру страницы;
    — ввести текст, который и будет использоваться в качестве заголовка.

    После того, как создадим макрос, мы назначим ему кнопку на панели инструментов. После достаточно будет одного щелчка мыши, чтобы вставить заголовок в документ.

    Выполним последовательность шагов.

    Шаг 1.

    Открываем текстовый документ. Перейдем ToolsMacrosRecord Macro. Появится маленькое окно «Запись макроса» с одной единственной кнопкой «Завершить макрос» (Stop Recording):

    (Примечание: возможно, для включения такой возможности потребуется поставить пакет libreoffice-kde4, если он еще не установлен. Или же включить ее, перейдя: Сервис — Параметры — Общие — Включить экспериментальные возможности).

    Шаг 2.

    Создадим заголовок текста. Щелкнем мышью на кнопке «Center alignment» («По центру«), для того, чтобы наш будущий текст был именно по центру документа. Теперь пишем сам текст заголовка. Не стоит задавать различные форматы для него (шрифт или жирный/курсив/подчеркнутый), так как макрос не запоминает такие действия.

    Шаг 3.

    После того, как создание заголовка завершено, щелкните мышью на кнопке «Завершить макрос» окна «Запись макроса«. Сразу появится окно Органайзера макросов. Задайте имя для нового макроса (например, Letterhead). Теперь можно сохранить его в то место, где бы вы хотели (например, папка «Мои макросы«).

    Шаг 4.

    Теперь нам осталось добавить кнопку на панели инструментов для макроса Letterhead. Процесс этот не так прост, как казалось бы на первый взгляд.
    Открываем LibreOffice Basic Macros, нажимаем кнопку «Assign» («Назначить«). Появится следующее окно Customize, в котором нам следует перейти на вкладку Toolbars и убедиться в том, что в поле «Панель инструментов» стоит «Стандартная» (Standart) .

    Нажимаем в этом окне кнопку «Добавить» (Add) . Появится еще одно окно — «Добавление команд» (Add commands).
    В списке левого окна «Категории» (Category) находим «Макросы LibreOffice» (в самом низу списка). Открываем его и добираемся до нашего макроса. Как только нашли — осталось выполнить последний и самый простой шаг. Перетаскиваем мышью макрос Letterhead в то место панели инструментов, где бы мы хотели его видеть.
    Все, с задачей справились.

    Шаг 5.

    Теперь все, что нам необходимо делать — это пользоваться кнопкой Letterhead на панели. Например, открываем новый документ и нажимаем кнопку Letterhead. Наш макрос создаст заголовок, именно с тем текстом, который мы «назначили» ему и разместит его наверху документа точно по центру.

    Удобно, не правда ли?

    Конечно, в нашем примере мы создали очень простой макрос. Но с помощью вышеописанных инструментов вы можете создать и очень сложные макросы. И не только в Writer, но и во всех остальных приложениях пакета LibreOffice (Spreadsheet, Presentations и т. п.).
    Теперь, когда вы имеете представление, как создавать макросы, вы можете легко создавать свои собственные, для того, чтобы облегчить свою работу.

    Ссылка на основную публикацию
    Adblock
    detector