Программный интерфейс (API) надстройки Lookup (для запуска из макроса)

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

ВНИМАНИЕ: техподдержка не распространяется на вопросы, связанные с запуском надстройки из ваших макросов, а также при запуске из планировщика Windows по расписанию.

В общей инструкции по API и автозапуску надстроек описано:

  • как запустить надстройку, и проверить, запущена ли она
  • как выполнить основные команды, при запущенной надстройке
  • как произвести импорт ранее сохранённых настроек из файла xml
  • как программно изменить настройки Lookup

а также присутствует файл Excel с примерами макросов для этих задач.

 

Ниже описаны параметры, имеющие отношение только к надстройке FillDocuments.

Команды меню, и соответствующие им макросы:

 

Пункт меню Код VBA для выполнения команды
Подставить данные Run "LookupData"

 

Есть возможность при помощи макроса в вашем файле Excel запустить подряд несколько подстановок с разными настройками подстановки.

Для этого, в стандартный модуль вашего файла Excel поместите этот макрос, и назначьте ему кнопку на листе:
(подстановки будут запущены в том порядке, в каком они указаны в коде в строках coll.Add "название набора")

Sub Lookup_RunMultiSettings()
    On Error Resume Next
    Dim coll As New Collection, setName, fExists As Boolean, addinpath$, res As Boolean, defSett$
    addinpath$ = GetSetting("Lookup", "Setup", "AddinPath")
    defSett$ = GetSetting("Lookup", "Settings", "_SettingSetName")
    defSettFilename$ = GetSetting("Lookup", "Settings", "_SettingSetFilename")
    Debug.Print "default is "; defSett$, defSettFilename$
 
    ' названия наборов настроек (имена сохраненных наборов настроек)
    ' количество пунктов списке не ограничено
    coll.Add "222"
    coll.Add "444"
    coll.Add "333"
 
 
    For Each setName In coll
        ' если хоть один файл набора настроек не найден - ничего не делаем
        settPath$ = Left(addinpath$, InStrRev(addinpath$, "\")) & "LookupSettings\" & setName & ".xml"
        fExists = CreateObject("Scripting.FileSystemObject").FileExists(settPath$)
        If Not fExists Then
            MsgBox "Не найдены настройки с названием «" & setName & "»", vbCritical, "Запуск Lookup из макроса"
            Exit Sub
        End If
    Next
 
    For Each setName In coll ' перебираем значения в списке
        Application.StatusBar = "Запущена подстановка с настройками «" & setName & "»"
        settPath$ = Left(addinpath$, InStrRev(addinpath$, "\")) & "LookupSettings\" & setName & ".xml"
        fExists = CreateObject("Scripting.FileSystemObject").FileExists(settPath$)
        If fExists Then
           ' если файл найден - пробуем активировать набор настроек
           res = Application.Run("'" & addinpath$ & "'!SETT").ActivateSettingSet(setName, settPath$)
           If res Then ' если он применился - запускаем подстановку
                Debug.Print res, fExists, setName
                Application.Run "'" & addinpath$ & "'!RunWithDelay", "CreateProgramCommandBar"
                Application.ScreenUpdating = True
                Application.Run "'" & addinpath$ & "'!LookupData"
           End If
        End If
    Next
    Application.StatusBar = "Подстановка данных завершена"
    ' выбираем настройки, которые были на момент запуска
    res = Application.Run("'" & addinpath$ & "'!SETT").ActivateSettingSet(defSett$, defSettFilename$)
End Sub