- Печать
Страницы: [1] Вниз
Тема: Правила BASIC не работают в макросах LibreOffice, или почему не едут лыжи? (Прочитано 8932 раз)
0 Пользователей и 1 Гость просматривают эту тему.

MAMOHT
Дорогому All-у доброго времени суток и года!
«Всё было хорошо пока не занялся программированием…»
«МАМОНТ. Copyright 11:21 29.06.2012 г.»
Как древний виндузятник порочащий весь и вся Человечную ОС по воле судьбы был приговорён к освоению софта под Линукс. И вот, при попытке написания макросов под LibreOffice, столкнулся с такими вот траблами:
При создании книжного макроса:
Sub MyCursor
Dim Doc As Object
Dim Cursor As Object
Dim sPath As String
Doc = StarDesktop.CurrentComponent
Cursor = Doc.Text.createTextCursor()
Вот здесь выскакивает окно сообщения с надписью: «Свойство или метод не найдены: Text»
…..........А здесь в сообщении чётко указана моя домашняя директория, но НЕ ТА директория в которой СЕЙЧАС открыт документ.
…........
sPath = CurDir$
MsgBox sPath
…......
End Sub
Проблема:
Из чьей кожи надо сделать бубен и какие изучить PAS, чтобы при составлении макроса на BASIC в LibreOffice 3.5.4.2 ID сборки: 350m1(Build:2) системы Ubuntu 10.04.4 всё-таки РАБОТАЛО правило Cursor = Doc.Text.createTextCursor() и как мне получить ТУ ТЕКУЩУЮ директорию в которой сейчас открыт АКТИВНЫЙ документ?
Ожидаю конкретных, корректных без словоблудства предложений по решению этих, как-бы на чей то взгляд, проблем.
Спасибо за понимание.
« Последнее редактирование: 29 Июня 2012, 15:56:47 от Чистый »

Señor_Gaga
>>Ожидаю конкретных, корректных без словоблудства предложений по решению этих, как-бы на чей то взгляд, проблем.
Если мне изменяет память — бейсик идет только для msWord.
Для ОО и LO есть свой скриптовый язык.

MAMOHT
>>Ожидаю конкретных, корректных без словоблудства предложений по решению этих, как-бы на чей то взгляд, проблем.
Если мне изменяет память — бейсик идет только для msWord.
Для ОО и LO есть свой скриптовый язык.
Вторую часть КАК-БЫ проблемы КАК-БЫ решил. Правда использованием не кратчайшего пути: это КАК-БЫ проехать в Париж через Владивосток. Нашёл описание на 114 странице книги Эндрю Питоньяк (Andrew Pitonyak)OpenOffice.org pro. Автоматизация работы.
Теперь к Señor_Gaga. Здесь точно КТО-ТО ошибается!!!
Переписываю дословно окно сообщения:
«Ошибка времени выполнения BASIC.
Свойство или метод не найдены: TEXT»

brij
Не могу сейчас точно ответить на Ваш вопрос, но просто вспомнил, что у Питоньяка есть много чего по макросам ЛО. Наверняка, Вам уже это известно, но все же на всякий пожарный
Если дружите с английским, то здесь http://www.pitonyak.org/oo.php/ можно найти очень много полезного, особенно мне когда-то сильно помог его «Macro document» http://www.pitonyak.org/oo.php/AndrewMacro.pdf. Там кстати, есть и его еще незаконченный список параллелей с VBA. Может пригодится.

Dixi257
- Печать
Страницы: [1] Вверх
Проверка нескольких условий ошибок времени исполнения
-
В процедуре события Button1_Click отредактируйте обработчик ошибок Try…Catch в соответствии с показанным ниже блоком кода. (Первоначальный оператор FromFile — тот же, что и в коде, который использовался в предыдущих упражнениях, но операторы Catch изменились.)
Try PictureBox1.Image = _ System.Drawing.Bitmap.FromFile ("a:Fileopen.bmp") Catch When Err.Number = 53 'При ошибке File Not Found (Файл не найден) MsgBox("Проверьте правильность указания пути к файлу и наличие дискеты") Catch When Err.Number = 7 'При ошибке Out Of Memory (Недостаточно памяти) MsgBox("Это действительно точечный рисунок?", , Err.Description) Catch MsgBox("Проблема при загрузке файла", , Err.Description) End TryЗапись Catch When используется в этом обработчике ошибок дважды, и каждый раз она используется со свойством Err.Number и проверяет, сгенерировал ли блок Try конкретный номер ошибки времени исполнения, или нет. Если свойство Err.Number содержит номер 53, это означает, что во время выполнения процедуры открытия файла произошла ошибка времени исполнения File Not Found (Файл не найден), и в окне сообщения отображается сообщение «Проверьте правильность указания пути к файлу и наличие дискеты». Если свойство Err.Number содержит номер 7, то произошла ошибка Out of Memory (Недостаточно памяти) — вероятно, она стала результатом загрузки файла, который не является файлом изображения. (Я получаю эту ошибку, если случайно пытаюсь открыть в объекте вывода изображений с помощью метода FromFile документ Microsoft Word.)
Последний оператор Catch обрабатывает все остальные ошибки времени исполнения, которые потенциально могут возникнуть во время открытия файла — это общий блок «перехвата всего», который выводит в окне сообщения универсальное сообщение об ошибке, а в его строке заголовка выводит сообщение об ошибке, содержащееся в свойстве Err.Description.
- Чтобы запустить программу, щелкните на кнопке Start (Начать).
- Удалите дискету из дисковода A.
- Щелкните на кнопке Проверить диск. Обработчик ошибок отображает сообщение об ошибке «Проверьте правильность указания пути к файлу и наличие дискеты». Работает первый оператор Catch When.
- Чтобы завершить выполнение программы, щелкните на OK, а затем на кнопке Закрыть формы.
- Снова вставьте дискету, а затем с помощью проводника Windows или другого инструмента скопируйте на этот диск второй файл, который не содержит изображений, например, документ Word или книгу Excel. Не надо открывать этот файл в Word или Excel — они нужны только для тестирования.
- В Редакторе кода в операторе программы FromFile измените имя файла Fileopen.bmp на имя файла, который вы только что скопировали на диск A. Использование файла другого формата даст вам возможность протестировать второй тип ошибки времени исполнения — исключение Out of Memory (Недостаточно памяти), которое происходит, когда Visual Basic пытается загрузить файл, не являющийся графическим или содержащим слишком много данных для объекта вывода изображений.
-
Снова запустите программу, а затем щелкните на кнопке Проверить диск. Обработчик ошибок отображает следующее сообщение об ошибке.

- Чтобы завершить выполнение программы, щелкните на OK, а затем на кнопке Закрыть формы.
- Измените имя файла в методе FromFile обратно на Fileopen.bmp. Он будет использоваться в следующем упражнении.
Оператор Catch When обладает большой мощью. В сочетании со свойствами Err.Number и Err.Description, он позволяет писать сложные обработчики ошибок, которые распознают и реагируют на несколько типов ошибок.
Генерация ваших собственных ошибок
Для тестирования вы можете искусственно сгенерировать в программе ошибки времени исполнения. Эта техника называется выбрасыванием — или генерацией — исключений. Чтобы это сделать, используйте метод Err.Raise с одним из номеров ошибок, приведенных в предыдущей таблице. Например, следующая запись использует метод Raise для создания ошибки времени исполнения Disk Full (Диск переполнен), а затем обрабатывает эту ошибку с помощью оператора Catch When:
Try
Err.Raise(61) ' генерируем ошибку Disk Full (Диск переполнен)
Catch When Err.Number = 61
MsgBox("Ошибка: Диск переполнен")
End Try
Когда вы узнаете, как писать собственные процедуры, эта техника позволит вам генерировать ваши собственные ошибки и возвращать их в вызывающую процедуру.
Указание периода повтора
Еще одна стратегия, которую можно использовать в обработчике ошибок — это попробовать выполнить операцию несколько раз, а затем, если проблема не исчезает, отключить ее. В следующем упражнении блок Try…Catch использует переменную-счетчик с именем Retries для отслеживания количества отображений сообщения «Пожалуйста, вставьте диск в дисковод A!», и после второго раза обработчик ошибок отключает кнопку Проверить диск. Особенность этой методики состоит в объявлении переменной Retries в верхней части кода формы программы так, что ее область видимости будет распространяться на все процедуры событий формы. Затем переменная Retries увеличивается и проверяется в блоке кода Catch. Число попыток может быть изменено простым изменением двойки в операторе, как показано здесь:
При запуске самой программы или открытия любого докум
Автор ForumOOo (бот), 21 февраля 2012, 14:01
0 Пользователи и 1 гость просматривают эту тему.
Компонент: Общие вопросы
Версия продукта: 3.3
Сборка: openoffice.org 3.3.0 OOO330m20 (build 9567)
ОС: Windows xp sp3
При запуске самой программы или открытия любого документа с помощью OO выходит окно
«Мои макросы и диалоги.promt Open Office Basic» в этом окне две ошибки
— «Ошибка времени выполнения Basic. Свойство или метод не найдены: CurrentController»
— «Ошибка времени выполнения Basic. Переменная типа Object не установлена»
Закрываю эти сообщения и можно дальше работать.
Тестовый файл: http://forumooo.ru/attachments/upload/err.jpg (200.5 КБ)
—
Подпись: Марина
Не может быть.
[вложение удалено Администратором]
Hasim, если у вас нет такой проблемы, это не значит, что ее нет у меня.
Я open office уже переустанавливала раз 10, сносила джаву, ставила заново, а проблема осталась.
Как ее победить?
Для начала показать весь файл целиком, а не кусок картинки.
Нет, для начала надо создать новый файл и вставить этот простенький макрос Hasima.
Если и на нем будут ошибки, тогда надо удалить профиль, и попробовать снова.
Если на простеньком ошибок не будет, а на оригинальном будут, тогда файл в студию.
Да, в принципе, и этого фрагмента картинки хватает…
Добро пожаловать на форум, Марина!
Скажите, а Promt вы после установки офиса не переустанавливали?
Скорее всего, в настройках офиса (меню Сервис-Настройка-События) на событие «Запуск приложения» записан запуск макроса, формирующего меню переводчика. Проверьте, пожалуйста.
PS. Я думаю, ошибка выскакивает, если просто запускается офис. В случае, если сразу открывается какой-то документ, её быть не должно. Фокус в том, что у любого документа свойство CurrentController есть, а у главного окна — нет. Если мои подозрения верны, то для устранения ошибки достаточно будет
удалить Promt (шутка)
немного доработать макрос regicterContextMenuInterceptor.
Hasim и neft, К своему стыду, я не знаю, как создать пустой файл, чтобы в него ваш макрос вставить.
JohnSUN, Промт я недели две как снесла. А кто вначале раньше был установлен ПРОМТ или ОО я не помню, очередная попытка снести ОО и заново установить была сегодня.
Нашла в «Запуск приложения» в столце «Назначенное действие» 4 каких-то макроса типа promt.***
Они были благополучно удалены. Моя проблема ушла. Я что, все правильно сделала?!
Эта зараза ПРОМТ оказывается прописался в системе. Как его у далить из ОО, чтобы и в дальнейшем, он мне жизнь не портил?
[вложение удалено Администратором]
Да, всё сделала правильно.
Почистить меню можно попробовать через ту же Сервис-Настройка-Меню кнопка Изменить-Удалить.
Или плюнуть на всё и просто удалить профиль пользователя. Раз уж переустанавливала столько раз, значит жалеть не о чем — в топку!
Во оно как! Не знала, не знала. Спасибо за участие, что хотела — сделала 🙂
Всегда рады помочь!
Будут вопросы — не стесняйся, здесь все свои
Если удаление профиля не поможет, ОБЯЗАТЕЛЬНО проделайте такое:
1. Удаляете (не переустанавливаете — восстанавливаете) Офис через «Панель управления — Установка и удаление прграмм».
2. Вручную из «Program_Files» удаляете папку «OpenOffice 3»
В Program FilesOpenOffice 3.. (даже при удалении всего пакета) остаются расширения, установленные «для всех пользователей. Эти расширения будут подключены к вновь установленному Офису при его 1-м запуске, что будет зафиксировано в Офисном профиле пользователя.
3. Удаляете Офисный профиль пользователя (ссылка «КАК» — у JohnSUN)
4. Устанавливаете Офисный пакет.
- Форум поддержки пользователей LibreOffice, Apache OpenOffice
-
►
Главная категория -
►
Общее -
►
При запуске самой программы или открытия любого докум
Файл не найден в указанном расположении. Эта ошибка имеет следующие причины и способы решения:
Один из операторов, например Kill, Name или Open, ссылается на несуществующий файл. Проверьте, правильно ли указаны имя файла и путь.
Совершена попытка вызова процедуры из динамической библиотеки (DLL), однако имя файла библиотеки или ресурса в предложении Lib оператора Declare не найдено.
Проверьте, правильно ли указаны имя файла и путь.
В среде разработки эта ошибка возникает при попытке открыть несуществующий проект или загрузить несуществующий текстовый файл.
Проверьте, правильно ли указаны имя файла и путь.
Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh).
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Excel VBA — Run-time error ’53’: File not found. But file was found
I have an Excel sheet that pulls data from a folder full of .txt documents. Last week Friday, it worked. Nothing changed. This week Monday, I get a Run-time error ’53’: File not found.
What’s interesting, is that when I click «Debug» it highlights a line in my code, and when I mouse over the ‘sFile’ variable, it tells me the name of the file that it apparently can’t find. but it could only know the name of it if it found it. And yes, I’ve verified, that file does exist.
The Excel sheet is in H:My DocumentsLoma CW3 Reports
The data .txt files are in H:My DocumentsLoma CW3 ReportsProduct Statistics
The first 3 files that it should be pulling are:
Like mentioned above, when I’m debugging the code and mouse-over «sFile» in the line «Open sFile For Input As #1», it tells me:
Which it could only know if it was successfully scanning the folder since I don’t hardcode any of those file names in.
I have tried removing that file, renaming the file to a word like ‘apple’, checked to see if it became read-only (nope). I’m thrown for a loop here, because it worked as is last week, and nothing changed from when I opened it up this week and tried it.
Как исправить время выполнения Ошибка 53 Ошибка Microsoft Word 53
В этой статье представлена ошибка с номером Ошибка 53, известная как Ошибка Microsoft Word 53, описанная как Ошибка выполнения.
Информация об ошибке
Имя ошибки: Ошибка Microsoft Word 53
Номер ошибки: Ошибка 53
Описание: Ошибка выполнения.
Программное обеспечение: Microsoft Word
Разработчик: Microsoft
Этот инструмент исправления может устранить такие распространенные компьютерные ошибки, как BSODs, зависание системы и сбои. Он может заменить отсутствующие файлы операционной системы и библиотеки DLL, удалить вредоносное ПО и устранить вызванные им повреждения, а также оптимизировать ваш компьютер для максимальной производительности.
О программе Runtime Ошибка 53
Время выполнения Ошибка 53 происходит, когда Microsoft Word дает сбой или падает во время запуска, отсюда и название. Это не обязательно означает, что код был каким-то образом поврежден, просто он не сработал во время выполнения. Такая ошибка появляется на экране в виде раздражающего уведомления, если ее не устранить. Вот симптомы, причины и способы устранения проблемы.
Определения (Бета)
Здесь мы приводим некоторые определения слов, содержащихся в вашей ошибке, в попытке помочь вам понять вашу проблему. Эта работа продолжается, поэтому иногда мы можем неправильно определить слово, так что не стесняйтесь пропустить этот раздел!
- Время выполнения — время выполнения — это время, в течение которого программа работает, выполняя
- Ошибка выполнения — ошибка выполнения обнаруживается после или во время выполнения программы.
- Microsoft word — по вопросам программирования, связанным с редактором Microsoft Word
Симптомы Ошибка 53 — Ошибка Microsoft Word 53
Ошибки времени выполнения происходят без предупреждения. Сообщение об ошибке может появиться на экране при любом запуске %программы%. Фактически, сообщение об ошибке или другое диалоговое окно может появляться снова и снова, если не принять меры на ранней стадии.
Возможны случаи удаления файлов или появления новых файлов. Хотя этот симптом в основном связан с заражением вирусом, его можно отнести к симптомам ошибки времени выполнения, поскольку заражение вирусом является одной из причин ошибки времени выполнения. Пользователь также может столкнуться с внезапным падением скорости интернет-соединения, но, опять же, это не всегда так.

(Только для примера)
Причины Ошибка Microsoft Word 53 — Ошибка 53
При разработке программного обеспечения программисты составляют код, предвидя возникновение ошибок. Однако идеальных проектов не бывает, поскольку ошибки можно ожидать даже при самом лучшем дизайне программы. Глюки могут произойти во время выполнения программы, если определенная ошибка не была обнаружена и устранена во время проектирования и тестирования.
Ошибки во время выполнения обычно вызваны несовместимостью программ, запущенных в одно и то же время. Они также могут возникать из-за проблем с памятью, плохого графического драйвера или заражения вирусом. Каким бы ни был случай, проблему необходимо решить немедленно, чтобы избежать дальнейших проблем. Ниже приведены способы устранения ошибки.
Методы исправления
Ошибки времени выполнения могут быть раздражающими и постоянными, но это не совсем безнадежно, существует возможность ремонта. Вот способы сделать это.
Если метод ремонта вам подошел, пожалуйста, нажмите кнопку upvote слева от ответа, это позволит другим пользователям узнать, какой метод ремонта на данный момент работает лучше всего.