Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

20 Апрель 2021, 16:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Ошибка при вызове GlobalScope.BasicLibraries.LoadLibrary("Tools")  (Прочитано 490 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ammaretto
Участник
**
Offline Offline

Сообщений: 12


« Стартовое сообщение: 10 Февраль 2021, 06:33 »

Здравствуйте, друзья!
На моем ноутбуке перестали работать макросы по открытию файла:
Ругается на строку GlobalScope.BasicLibraries.LoadLibrary("Tools") , если закомментировать , то на OpenDocument(ConvertToURL(PFolderName), mArgs() )

Просила проверить коллег-макросы работают.
Может кто сталкивался с такой проблемой. Прилагаю скриншот ошибки и файл с макросом


Option VBASupport 1
Option Explicit
Option Compatible
sub openfiles
Dim PFolderName As String
Dim oFilePicker, oCtl, oSheet as object
Dim FileName, i, j

   GlobalScope.BasicLibraries.LoadLibrary("Tools")
   oFilePicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
   oFlePicker.Title = "Выберите файл"

   If oFilePicker.execute = com.sun.star.ui.dialogs.ExecutableDialogResults.OK Then
      FileName = oFilePicker.Files(0)

      PFolderName = ConvertFromURL(FileName)
   End If   
   
        'определяем имя файла и открывае книгу
   
    Dim pBook As String
    Dim wb As object
    Dim ot As Boolean

    ot = False
   
    i = InStrRev (PFolderName,"\")
    pBook = Right(PFolderName, Len(PFolderName) - i)
    Dim mArgs(0) as New com.sun.star.beans.PropertyValue
 
    mArgs(0).Name = "MacroExecutionMode"
    mArgs(0).Value = 0
    wb = OpenDocument(ConvertToURL(PFolderName), mArgs() )
    ot = True
 
end sub

* test.ods (9.98 Кб - загружено 4 раз.)

* тест.png (52.02 Кб, 1107x445 - просмотрено 8 раз.)
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 3 068


iMac, LibreOffice и Apache OpenOffice


« Ответ #1: 10 Февраль 2021, 08:11 »

Ругается на строку GlobalScope.BasicLibraries.LoadLibrary("Tools") , если закомментировать , то на OpenDocument(ConvertToURL(PFolderName), mArgs() )
Странно, а должно ругаться на oFlePicker:
Код:
oFilePicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
oFlePicker.Title = "Выберите файл"
Option Explicit требует определения всех переменных, а oFlePicker не определена, потому что ошибка (в этом ценность Option Explicit).

Если есть библиотека "Tools", должно работать.
Записан

Ammaretto
Участник
**
Offline Offline

Сообщений: 12


« Ответ #2: 11 Февраль 2021, 04:34 »

Здравствуйте!
Прошу прощения, нечаянно стерла букву в строчке oFilePicker.Title . Поправила, ругалась на OpenDocument
Открыла файл с помощью Loadcomponentfromurl-все заработало.
Но всё равно интересно, почему перестало работать...

Option VBASupport 1
Option Explicit
Option Compatible
sub openfiles
Dim PFolderName As String
Dim oFilePicker, oCtl, oSheet as object
Dim FileName, i, j, oDeskTop

'   GlobalScope.BasicLibraries.LoadLibrary("Tools")

   oFilePicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
   oFilePicker.Title = "Выберите файл"

   If oFilePicker.execute = com.sun.star.ui.dialogs.ExecutableDialogResults.OK Then
      FileName = oFilePicker.Files(0)

      PFolderName = ConvertFromURL(FileName)
   End If   
   
        'определяем имя файла и открывае книгу
   
    Dim pBook As String
    Dim wb As object
    Dim ot As Boolean

    ot = False
   
    i = InStrRev (PFolderName,"\")
    pBook = Right(PFolderName, Len(PFolderName) - i)
    Dim mArgs(0) as New com.sun.star.beans.PropertyValue
 
    mArgs(0).Name = "MacroExecutionMode"
    mArgs(0).Value = 0

      oDeskTop=CreateUnoService("com.sun.star.frame.Desktop")
'   wb = OpenDocument(ConvertToURL(PFolderName), mArgs() )
   wb =  oDeskTop.Loadcomponentfromurl(ConvertToURL(PFolderName),"_blank",0,mArgs())

    ot = True
 
end sub
Записан
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 379


WWW
« Ответ #3: 11 Февраль 2021, 12:12 »

Но всё равно интересно, почему перестало работать.
Вам Rami в #1 ответил - макрос работает, если исправить опечатку. Если интересно (а это похвально), пройдитесь по отладчику и расскажите нам, в чем же было дело.
Записан

Владимир.
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!