| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Получить из Акада запущенный экземпляр Excel через Getobject

VBA. Получить из Акада запущенный экземпляр Excel через Getobject

Ответ
Поиск в этой теме
Непрочитано 11.10.2023, 11:34 #1
VBA. Получить из Акада запущенный экземпляр Excel через Getobject
Dinoxromniy
 
Санкт-Петербург
Регистрация: 14.09.2020
Сообщений: 311

Добрый день.
Для связи приложений Акад - эксель использую стандартный код вида:
Код:
[Выделить все]
     
Dim xlApp As Object
    Err.Clear
    Set xlApp = GetObject(, "Excel.Application.16")
    If Err <> 0 Then
        Err.Clear
        Set xlApp = CreateObject("Excel.Application.16")
        If Err <> 0 Then
            MsgBox "Cannot start Excel", vbExclamation
            End
        End If
    End If
Код запущенный из под акада не может найти уже открытое приложение экселя по строке Set xlApp = GetObject(, "Excel.Application.16") и создает новый экземпляр через CreateObject. После этого уже запущенный через код VBA экземпляр легко находится при новом запуске кода и работает дальше. Разрядности autocad 2022 и офиса 2021 одинаковы - 64. Если запускать Word из Excel или наоборот Excel из Word - ситуация абсолютно аналогичная: не видит открытый экземпляр, создает свой собственный, успешно видит свой созданный при запуске например другого кода.
В реестре нашел записи по регистрации экселя - есть и "Excel.Application.16" и "Excel.Application", работает абсолютно одинаково.

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

Если на форуме уже обсуждалось - просьба ткнуть в тему.
Спасибо.
Просмотров: 523
 
Непрочитано 11.10.2023, 12:03
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,739


А если попробовать без указания версии Excel'a?
Уже сто лет не работал с Excel'ем - написал код и забыл как страшный сон ))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 11.10.2023, 12:07
#3
Dinoxromniy


 
Регистрация: 14.09.2020
Санкт-Петербург
Сообщений: 311


Кулик Алексей aka kpblc, без указания версии работает абсолютно без отличий. Меня что смущает - что когда он сам открывает экземпляр, то все работает как надо. Ну и плюс то, что связка Word - Excel работает так же. Это несколько лет назад началось, как я понимаю - при переходе не разрядность, и в обсуждениях проскакивает, что работать должно. Что я делаю неправильно, к сожалению отследить не получается.
Dinoxromniy на форуме  
 
Непрочитано 11.10.2023, 12:53
1 | #4
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 10,926


читайте про Таблицу исполняющихся объектов (Running Object Table), COM-сервер офиса может быть не один запущен на машине.
Сергей812 вне форума  
 
Автор темы   Непрочитано 11.10.2023, 12:58
#5
Dinoxromniy


 
Регистрация: 14.09.2020
Санкт-Петербург
Сообщений: 311


Сергей812, большое спасибо за наводку!
Dinoxromniy на форуме  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Получить из Акада запущенный экземпляр Excel через Getobject

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эвакуация из категории А через категорию В проект 1234 Пожарная безопасность 1 02.06.2017 18:01
Эвакуация из подвала через окно, через соседнее помещение Route Прочее. Архитектура и строительство 7 24.03.2017 16:18
АutoCad 2013 Помогите, пожалуйста, решить проблему с масштабированием через опорный отрезок в отдельных файлах oksliz AutoCAD 8 02.11.2016 01:21
Hазбивка-настройка окружности в AutoCAD для экспорта через DXF DENver_M7 AutoCAD 15 01.03.2016 14:39
Как настроить выход в интернет с комуникатора через блютуз и ПК KonGo Разное 15 01.04.2010 18:46