LXF84:OOo Basic
Yaleks (обсуждение | вклад) (V1. uncomplete) |
Yaleks (обсуждение | вклад) |
||
Строка 24: | Строка 24: | ||
=== Камень преткновения в Excel === | === Камень преткновения в Excel === | ||
+ | [[Изображение:Img 84 59 1.png|thumb|250px|(Рис. 1) Код VBA не вызовет затруднений – OOo просто его закомментирует.]] | ||
Начнем с простого. Если вы попытаетесь открыть таблицу Microsoft | Начнем с простого. Если вы попытаетесь открыть таблицу Microsoft | ||
Excel в OOo Calc, то все пройдет гладко – Calc откроет ее без вопросов, | Excel в OOo Calc, то все пройдет гладко – Calc откроет ее без вопросов, | ||
Строка 58: | Строка 59: | ||
=== SUSE как спирограф === | === SUSE как спирограф === | ||
+ | {{Врезка | ||
+ | |Заголовок=Что такое гипоциклоида? | ||
+ | |Содержание=Протестировав файл, вы можете заинтересоваться: что такое гипоциклоида? | ||
+ | Вот краткий урок математики: | ||
+ | Циклоиды – класс кривых, по которым движется точка на радиусе круга, | ||
+ | катящегося без скольжения по некой направляющей линии. | ||
+ | Если эта направляющая – прямая, получается трохоида. Если это внешняя | ||
+ | сторона другого круга – эпициклоида, а если внутренняя – гипоциклоида. | ||
+ | |||
+ | Тут вы воскликнете: «Так это же спирограф!» – и сразу станет ясно, | ||
+ | сколько вам лет… | ||
+ | |Ширина=200px}} | ||
Пришла пора установить SUSE 10.1. Должен признаться, что SUSE 7.1 | Пришла пора установить SUSE 10.1. Должен признаться, что SUSE 7.1 | ||
был моим первым дистрибутивом Linux, когда я начал работать на себя | был моим первым дистрибутивом Linux, когда я начал работать на себя | ||
Строка 64: | Строка 77: | ||
вернуться к SUSE. А как с установкой? Да легко. | вернуться к SUSE. А как с установкой? Да легко. | ||
+ | [[Изображение:Img 84 58 1.png|thumb|left|250px|(Рис. 2) Файл hypocycloid-demo.xls с разными шаблонами. Calc запросто его откроет, но тут-то и начнутся проблемы...]] | ||
Ну, на самом деле не совсем. Я скачал 5 образов CD с сайта Novell, | Ну, на самом деле не совсем. Я скачал 5 образов CD с сайта Novell, | ||
записал их на диски, перегрузился и понял, что создал 5 подставок | записал их на диски, перегрузился и понял, что создал 5 подставок | ||
Строка 87: | Строка 101: | ||
Standard. Наконец, нажмите Module1 и Edit. | Standard. Наконец, нажмите Module1 и Edit. | ||
+ | [[Изображение:Img 84 60 1.png|thumb|250px|(Рис. 3) На этот раз Calc не закомментировал код VBA, а принял его.]] | ||
С первого взгляда вы не увидите ничего необычного (Рис. 3). Но | С первого взгляда вы не увидите ничего необычного (Рис. 3). Но | ||
вспомните, как вы открывали макрос в не-SUSE версии OpenOffice.org. | вспомните, как вы открывали макрос в не-SUSE версии OpenOffice.org. | ||
Строка 108: | Строка 123: | ||
End Sub | End Sub | ||
</source> | </source> | ||
+ | [[Изображение:Img 84 61 1.png|thumb|250px|(Рис. 4) Установите VBASupport 1, чтобы избежать этой ошибки.]] | ||
Вы, возможно, получаете ошибку ‘BASIC runtime error. Subprocedure or function procedure not defined’ Не беспокойтесь. Все, что | Вы, возможно, получаете ошибку ‘BASIC runtime error. Subprocedure or function procedure not defined’ Не беспокойтесь. Все, что | ||
вам надо сделать, это добавить дополнительный параметр в начало | вам надо сделать, это добавить дополнительный параметр в начало | ||
Строка 116: | Строка 132: | ||
(Рис. 4). | (Рис. 4). | ||
+ | {{Врезка | ||
+ | |Заголовок=Скорая помощь | ||
+ | |Содержание=OOo безразличен | ||
+ | к регистру (вне зависимости от поддержки Excel VBA). | ||
+ | Однако постарайтесь привыкнуть к | ||
+ | использованию заглавных букв, чтобы сделать код более читабельным, | ||
+ | например, пишите | ||
+ | openNewSheet | ||
+ | вместо | ||
+ | opennewsheet. Зачем? А чтоб уменьшить вероятность | ||
+ | сделать ошибку. | ||
+ | |Ширина=200px}} | ||
Здесь возникает вопрос: только ли это поддержка VBA? В конце | Здесь возникает вопрос: только ли это поддержка VBA? В конце | ||
концов, кроме упрощения возможности миграции ваших Excel-макросов в OpenOffice.org, вы получили новый метод программирования, | концов, кроме упрощения возможности миграции ваших Excel-макросов в OpenOffice.org, вы получили новый метод программирования, | ||
Строка 193: | Строка 221: | ||
=== Испытайте на своем дистрибутиве === | === Испытайте на своем дистрибутиве === | ||
+ | {{Врезка | ||
+ | |Заголовок=Скорая помощь | ||
+ | |Содержание=Если вы собрались | ||
+ | писать программы | ||
+ | в стиле VBA, то | ||
+ | не забывайте, что | ||
+ | первой строкой | ||
+ | каждого модуля | ||
+ | должна быть | ||
+ | <source lang="vb">Option VBASupport 1</source> | ||
+ | В противном | ||
+ | случае вы получите | ||
+ | синтаксическую | ||
+ | ошибку. | ||
+ | |Ширина=200px}} | ||
Короче, вы поняли, в чем штука. Если вы пишете на VBA, то и продолжайте себе писать. Если он для вас в новинку и вам понравился, вы, | Короче, вы поняли, в чем штука. Если вы пишете на VBA, то и продолжайте себе писать. Если он для вас в новинку и вам понравился, вы, | ||
возможно, захотите узнать о нем побольше. В пакете вы помощи не | возможно, захотите узнать о нем побольше. В пакете вы помощи не | ||
Строка 277: | Строка 320: | ||
быть all-am: Makefile. Чтобы это исправить, надо отредактировать около 25 Makefile’ов – либо написать простой скрипт: | быть all-am: Makefile. Чтобы это исправить, надо отредактировать около 25 Makefile’ов – либо написать простой скрипт: | ||
<source lang="bash"> | <source lang="bash"> | ||
− | FILES= | + | FILES="Makefile */Makefile */*/Makefile" |
for FILE in $FILES | for FILE in $FILES | ||
do | do | ||
− | cat $FILE | sed s/ | + | cat $FILE | sed s/"all-am: Makefile \$(SCRIPTS)"/"all-am: Makefile"/g > $FILE.tmp |
− | + | ||
mv $FILE.tmp $FILE | mv $FILE.tmp $FILE | ||
done | done | ||
Строка 300: | Строка 342: | ||
стабильнее, чем исходная Windows-версия программы. Ну как тут не | стабильнее, чем исходная Windows-версия программы. Ну как тут не | ||
любить Linux? | любить Linux? | ||
+ | |||
+ | {{Врезка|center| | ||
+ | |Заголовок=Облегчите себе жизнь | ||
+ | |Содержание=Если вы не верите, что взаимодействие OpenOffice.org и Excel VBA поможет | ||
+ | облегчить вам жизнь, просто гляньте, как легко создать новую таблицу и | ||
+ | начать в ней писать: | ||
+ | <source lang="vb"> | ||
+ | Dim wSheet as worksheet | ||
+ | Dim wBook as workbook | ||
+ | set wBook = application.workbooks.add | ||
+ | set wSheet = Sheets(0) | ||
+ | wSheet.cells(2,1).value = “Too easy for words” | ||
+ | </source> | ||
+ | Изменить шрифты также просто: | ||
+ | <source lang="vb"> | ||
+ | wSheet.Range(“A1:Z1”).Select | ||
+ | With Selection.Font | ||
+ | .Name =”Verdana” | ||
+ | .Size = 14 | ||
+ | End With | ||
+ | </source> | ||
+ | А как насчет того, чтобы спрятать один из рабочих листов? | ||
+ | <source lang="vb"> | ||
+ | Dim wSheet2 as worksheet | ||
+ | set wSheet2 = Sheets(2) | ||
+ | wSheet2.visible = false | ||
+ | </source> | ||
+ | Как программист-лентяй, я благодарен людям, выполняющим трудную | ||
+ | работу по переносу Excel VBA в OpenOffice.org. | ||
+ | |Ширина=}} |
Версия 11:49, 22 мая 2008
|
|
|
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Содержание |
Используем макросы VBA
ЧАСТЬ 5: Как ни хорош OOo, он не распознает макросы Excel VBA, не так ли? Не так. Эксцентричный Марк Бейн вам все объяснит.
Мы подходим к концу данной серии уроков, и вы уже знаете, что можно автоматизировать любые задачи с помощью макросов OpenOffice.org Basic. На этот раз мы рассмотрим возможность использования Windows-эквивалента, VBA, в OOo – и увидим, что не все OpenOffice.org одинаковы.
Позвольте мне начать с истории в стиле Макса Байгрейвcа [Max Bygraves]. Недавно я купил очень хороший поддержанный ПК, MSI Mega, с Windows XP. Я воздержался от установки на него Linux, и попытался найти способ запустить Linux через Windows. Скажете, кощунство? Объясняю: у компьютера имеется TV-карта, а у меня – странное ощущение, что я останусь без Freeview, если мигрирую. Поэтому я установил Cygwin, а затем использовал Cygserver, чтобы работать с Linux на одной из других моих машин. Но на свете столько дистрибутивов, что я не утерпел, и миграция свершилась. Теперь у меня замечательный ПК с PCLinuxOS, а заодно и ежевечернее развлечение: попытки заставить эту карту снова заработать.
К чему я это рассказал? Очень просто: мой страх потерять Freeview аналогичен страху разработчика VBA, который обдумывает миграцию на OpenOffice.org. Не станут ли макросы, нажитые непосильным трудом, годны только в помойку, и не придется ли писать все сначала?
Камень преткновения в Excel
Начнем с простого. Если вы попытаетесь открыть таблицу Microsoft Excel в OOo Calc, то все пройдет гладко – Calc откроет ее без вопросов, ибо OpenOffice.org не страдает предрассудками. А ну как в таблицу встроен макрос? OOo выдаст вам стандартное предупреждение «Этот документ содержит макросы», но что бы вы ни выбрали – Включить макросы или Отключить макросы – Calc не выдаст никаких ошибок и загрузит документ (Рис. 1). Значит ли это, что OpenOffice.org понимает макросы VBA? Увы, нет.
Так что же случилось с теми макросами? Открыв свежеимпортированный модуль в редакторе OOo Basic, вы обнаружите, почему OOo не ругается на код: все строки кода превратились в комментарии. Вот так OOo обрабатывает код VBA: просто его игнорирует, предоставляя вам самим во всем разбираться.
Итак, похоже, что страхи разработчика VBA обоснованы – и что данная статья закончится, не начавшись. Я тоже так думал, пока не поговорил с Ноэлем Пауэром [Noel Power]. Этого человека стоит знать – он отвечает за взаимодействие OpenOffice.org и Excel VBA в Novell. Ноэль предложил простое решение: установить SUSE 10.1. Давайте подумаем: а надо ли? Какой-то тип из Novell всем рекомендует брать SUSE. С чего это вдруг? «Нет, серьезно, – отвечает Ноэль. – Просто я не знаю, у какого ещё дистрибутива есть поддержка VBA, а у SUSE точно есть.» [Русскоязычные пользователи могут воспользоваться сборками OOo от «Инфра-Ресурс» – они поддерживают макросы VBA – прим. ред.] И тут он прав: я-то всегда предполагал (наверно, по наивности), что ваш OpenOffice.org 2.0.2 на машине с PCLinuxOS (к примеру) и OpenOffice.org на машине с SUSE – совершенно одинаковые OpenOffice.org. Как бы не так!
Почему же Novell включила поддержку Excel VBA в свою версию OpenOffice.org? Потому, говорит Ноэль, «что одним из барьеров внедрения OpenOffice.org является отсутствие прозрачной работы макросов. В бизнесе почти все жизненно важные макросы сосредоточены в таблицах Excel. Устранение или снижение этого барьера сразу же облегчит внедрение OpenOffice.org.» Исследования Novell по использованию VBA на предприятиях показали, что большинство макросов используют подмножество объектов Excel API – например, объекты Range и Worksheet. Ноэль и его коллеги сосредоточились на поддержке часто используемых объектов, их методов и свойств, то есть модель Novell VBA хотя и не полна, но покрывает большую часть потребностей.
SUSE как спирограф
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Пришла пора установить SUSE 10.1. Должен признаться, что SUSE 7.1 был моим первым дистрибутивом Linux, когда я начал работать на себя в начале этого столетия. К сожалению, я знал, что SUSE хоть и великая вещь, но чересчур великая для моего тогдашнего ноутбука. Однако ПК с тех пор несчетно размножились, поэтому хорошо, что есть повод вернуться к SUSE. А как с установкой? Да легко.
Ну, на самом деле не совсем. Я скачал 5 образов CD с сайта Novell, записал их на диски, перегрузился и понял, что создал 5 подставок для пивных кружек. Поделюсь советом: когда на диске написано, что скорость прожига 52x – не верьте. Лучше сбросьте скорость записи до 12x – на запись потребуется больше времени, но зато она будет сделана качественно. Что до установки – легко. Скачал 5 образов CD с сайта Novell, записал их на скорости 12x, перегрузись и следуй инструкциям инсталлятора.
Если вы сделаете то же самое, перед вами предстанет такая же копия OpenOffice.org, как и везде. Существующие пользователи SUSE 10.1 могут даже не понимать, из-за чего тут суетиться. Конечно, если вам не нужны макросы Excel VBA, то вы всего лишь поимели новую версию OpenOffice.org. А вот если к вам попала таблица Excel с макросом, придется побеспокоиться. Каков же следующий шаг? Загрузим табличку Excel (естественно, содержащую макрос) и посмотрим, что произойдет.
Вы захотите сразу же увидеть рабочий пример, поэтому мы записали на диск файл hypocycloid-demo.xls от Ноэля. Что в нем особенного? Ничего. Вы его загружаете, а он работает: нажмите на кнопку – и картинка изменится (Рис. 2). Все здорово, но реальную разницу вы увидите, только просмотрев макрос в редакторе кода. Для этого надо прощёлкать Tools–>Macros–>Organize Macros–>OpenOffice.org Basic. На экране OpenOffice.org Macros разверните Hypocycloid-demo, затем Standard. Наконец, нажмите Module1 и Edit.
С первого взгляда вы не увидите ничего необычного (Рис. 3). Но вспомните, как вы открывали макрос в не-SUSE версии OpenOffice.org. На сей раз весь код, строчка за строчкой, целехонек; велите ему работать, он и будет работать.
Это означает две вещи. Первое: если вы работаете на Excel VBA, при миграции на OpenOffice.org весь свой код выбрасывать вам не придется. Однако не забудьте сохранить свои наработки, прежде чем окончательно избавиться от Windows. Второе, не менее важное: можно продолжать разработку со старыми знаниями, просто используя OpenOffice.org вместо Excel. Ура!
На практике
Не надо песен: вы пошли и загрузили парочку ваших старых макросов Excel, они идеально работали, а когда вы попытались создать макрос для новой таблицы, то потерпели неудачу. Например, вы могли бы попытаться написать следующее:
Sub writeToCell_VBA sheets(“Sheet1”).select cells(1,1).value=”Hello world” End Sub
Вы, возможно, получаете ошибку ‘BASIC runtime error. Subprocedure or function procedure not defined’ Не беспокойтесь. Все, что вам надо сделать, это добавить дополнительный параметр в начало каждого модуля, в котором вы хотите использовать VBA:
Option VBASupport 1
Вот так и поступает Novell-версия OOo – не превращает строки кода в комментарии, а вставляет Option VBASupport 1 в начале модуля (Рис. 4).
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Здесь возникает вопрос: только ли это поддержка VBA? В конце концов, кроме упрощения возможности миграции ваших Excel-макросов в OpenOffice.org, вы получили новый метод программирования, который вы можете найти более удобным в использовании, чем собственно OOo Basic. В этом и прелесть Linux: чтобы выполнить работу, нет правильного и неправильного пути. Давайте рассмотрим процедуру записи в ячейку при помощи OOo Basic:
Sub writeToCell_OOo dim sheet as object dim cell as object sheet=thisComponent.sheets(0) cell=sheet.getCellByPosition(0,0) cell.string=”Hello World Again” End Sub
Вы можете сократить этот код до
Sub writeToCell_minimum thisComponent.sheets(0). getCellByPosition(0,1). string=”Last One” End Sub
На этих примерах вы, возможно, разглядите одно из больших отличий OOo Basic и VBA. OpenOffice.org Basic содержит главный объект (thisComponent), и все наследуется от него. VBA работает с отдельными объектами (Application, ActiveSheet, ActiveCell и им подобными). Их использование может сделать код читабельнее и проще в поддержке.
В некоторых случаях вы обнаружите, что OOo Basic и VBA делают одно и то же, просто используя разные слова. Например, взгляните на:
ThisComponent.LockControllers ‘формат OOo
и
Application.ScreenUpdating = False ‘формат VBA
Обе этих строки выполняют одно и то же: замораживают экран, это может быть полезно, если вы пишете в несколько ячеек. Чем сидеть и смотреть, как поштучно происходит обновление ячеек, лучше увидать полностью готовый экран, когда работа выполнена. И не забудьте разморозить экран:
ThisComponent.UnlockControllers ‘формат OOo
или
Application.ScreenUpdating = True ‘формат VBA
Большинство случаев похожи на этот: та же функциональность, но все слегка упрощено благодаря новым объектам. Мы уже видели, как работать с ячейками; а сейчас мы покажем, как устанавливать диапазон значений в VBA и OpenOffice.org:
ThisComponent.CurrentController.ActiveSheet. getCellRangeByName(“B2”).String = _ “Используем Windows, когда так просто установить Linux”
и
Range(“B1”).Value = “Что такое мазохизм”
Если вы читали внимательно, то заметили, как вводится информация в ячейки и диапазоны. В формате OOo Basic вы просто указываете тип данных, которые собираетесь загрузить в ячейки (строка или значение). Если вы используете формат VBA, у вас только один тип данных: значение. Разница невелика, но знать о ней надо.
Как мы уже видели, большая часть функциональности VBA реализуется с помощью функций простого формата. Иногда он совсем прост. Например, чтобы очистить диапазон ячеек, вы можете использовать либо
Range(“A1:E5”).ClearContents
либо
ThisComponent.Sheets.getByName(“Sheet1”). getCellRangeByName(“B1:E5”).clearContents( _ com.sun.star.sheet.CellFlags.VALUE _ + com.sun.star.sheet.CellFlags.STRING _ + com.sun.star.sheet.CellFlags.DATETIME _ + com.sun.star.sheet.CellFlags.ANNOTATION _ + com.sun.star.sheet.CellFlags.FORMULA _ + com.sun.star.sheet.CellFlags.HARDATTR _ + com.sun.star.sheet.CellFlags.STYLES _ + com.sun.star.sheet.CellFlags.OBJECTS _ + com.sun.star.sheet.CellFlags.EDITATTR)
Выбор остается за вами – бывают ведь и любители побарабанить по клавишам. Знаю, знаю, можно вместо этого написать процедуру, но чего ради, если работа уже сделана за вас?
Испытайте на своем дистрибутиве
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Короче, вы поняли, в чем штука. Если вы пишете на VBA, то и продолжайте себе писать. Если он для вас в новинку и вам понравился, вы, возможно, захотите узнать о нем побольше. В пакете вы помощи не найдете. Поискав в файлах справки OpenOffice.org по ключу VBA, получите информацию о том, как работает обычная редакция OOo – это мы уже проходили: код VBA грузится как комментарии. Однако по Excel VBA существует уже так много информации, что даже поиск в Google позволит найти полное руководство к действию.
Отсутствие документации свидетельствует о статусе проекта, а не о его качестве. В конце концов, в любом проекте бумажная работа всегда оставляется на потом.
Всегда следует помнить, что проект находится в стадии развития. Вы можете обнаружить, что какой-то код не импортируется или вызывает ошибки. Однако в основном это проявляется разве что при использовании редких и сложных функций.
Здесь-то вы и можете помочь. Если вы уже используете SUSE 10.1 или планируете на него перейти, я ожидаю, что вы скажете: «А в чем проблема?» Ну и прекрасно. Однако если вы приверженец Debian или Fedora, или любой другой системы, то проблемы будут – ну, то есть, будут, если вам потребуется взаимодействие с Excel VBA. Что вы можете предпринять?
Ноэль сказал мне, что Novell работает над включением модели VBA в исходный код стандартной поставки OpenOffice.org, и недавно основал проект продвижения работы Novell по VBA (http://vba.OpenOffice.org) в состав OOo, что позволит большему числу пользо- вателей Excel VBA перейти на открытое программное обеспечение. «Наката Махо [Nakata Maho], разработчик OpenOffice.org, и Ханно Мейер-Туров [Hanno Meyer-Thurow], разработчик Gentoo, помогли в реализации и разработке API», – сказал он мне. Если вы решили установить модель VBA на вашем дистрибутиве, то найдете исходный код на http://go-oo.org, а инструкции по скачиванию на http://wiki.services.OpenOffice.org/wiki/Getting_It. Однако для экономии времени можно сделать вот что:
export CVSROOT=’:pserver:anonymous@anoncvs.gnome.org:/ cvs/gnome’ cvs login cvs -z3 checkout -P OOo-build
Вы обнаружите, что у вас создался каталог OOo-build. Полные инструкции по сборке расположены по адресу http://wiki.services.OpenOffice.org/wiki/Building. Процесс достаточно прямолинеен, а если и сложноват, то полнота описания снижает вероятность совершения ошибки. Так как OOo-build – действительно разрабатываемая версия, то вы можете обнаружить, что придется добавить другие приложения – но если что-то потребуется, OOo вам об этом сообщит.
Поэтому на следующем шаге вы идете в каталог OOo-build и запускаете autogen.sh. На моем Debian он не заработал из-за ошибки ‘./autogen.sh: line 18:aclocal:command not found’. Быстрое прочесывание Интернета показало, что лекарство – установка automake:
sudo apt-get install automake
Когда вы заставите работать autogen.sh, следующим шагом будет выбор дистрибутива, на котором планируется установка. Выбирайте из Ark, Ark64, Common, CommonLinux, CommonWin32, Debian, Debian64, DebianSarge, DroplineGNOME, Frugalware, Frugalware64, Gentoo, Mandriva, Mandriva64, NovellWin32, QiLinux, SUSE-10.0, SUSE-10.1, SUSE-64. SUSE9.1, SUSE-9.2, SUSE-9.3, SUSE-PPC, SUSE, Ubuntu, Ubuntu64, UbuntuL10n, translate-org-za-Linux и translate-org-za-win32. Все что вам надо сделать, это запустить autogen.sh с опцией --with-distro:
/autogen.sh --with-distro=DebianSarge
Далее следим за работой autogen.sh и сообщениями об ошибках, а затем устанавливаем недостающие программы:
autogen.sh stops with the error: Install the software: configure: error: install pam-devel sudo apt-get install libpam0g-dev configure: error: install png-devel sudo apt-get install libpng2-dev
Чтобы отыскать все программы, придется пошарить в Интернете, но на базовую конфигурацию много времени не уйдет.
Далее нужно заставить OOo-build скачать необходимые файлы, это сделать легко: просто запустите ./download. Наконец, запустите make. Ну, не совсем наконец, потому что вы можете получить следующее сообщение об ошибке:
bainm@hector:~/OOo-build$ make Making all in po make[1]: Entering directory `/home/bainm/OOo-build/po’ make[1]: *** No rule to make target `yes’, needed by `all-am’. Stop. make[1]: Leaving directory `/home/bainm/OOo-build/po’ make: *** [all-recursive] Error 1
Присказка наших дней – «В беде обращайтесь к Google» (если, конечно, вы не в Китае). Я поискал и обнаружил, что у других людей наблюдается та же проблема. К счастью, решение простое: все Makefile содержат строку all-am: Makefile $(SCRIPTS), тогда как она должна быть all-am: Makefile. Чтобы это исправить, надо отредактировать около 25 Makefile’ов – либо написать простой скрипт:
FILES="Makefile */Makefile */*/Makefile" for FILE in $FILES do cat $FILE | sed s/"all-am: Makefile \$(SCRIPTS)"/"all-am: Makefile"/g > $FILE.tmp mv $FILE.tmp $FILE done
После этого make должен работать правильно. Однако, если у вас проблемы с программами, можете отключить их с autogen.sh. Потом можете воспользоваться советом autogen.sh – расслабиться и выпить чашку чая – хотя у меня это вылилось в питье чая, прогулку с собакой, кормление кошек и поход в бар.
Вот и все, уважаемый читатель. Агитируйте разработчиков вашего любимого дистрибутива последовать примеру Novell. Примите участие в сообществе взаимодействия с VBA. Или начните использовать новую версию OpenOffice.org.
Если вам интересно узнать о вышеупомянутой TV-карте – она заработала, как только я установил SUSE 10.1. Вообще-то я использую Kaffeine для просмотра каналов – он проще в использовании и стабильнее, чем исходная Windows-версия программы. Ну как тут не любить Linux?
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить