2 / 1 / 1
Регистрация: 26.05.2017
Сообщений: 23
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Не могу разобраться, в ООП с MS Office (word, excel). Именно для VB02.08.2017, 13:05. Показов 1211. Ответов 3
Метки нет (Все метки)
Всем привет)
Я ток начал разбираться в Visual Basic. До этого, активно юзал VBA. Создавал, формачи, кнопачки всякие прикольные штуки друки... немного пользовался ООП. На уровне ворда, экселя, но это всё было на VBA. Везде сказано, что родоначальным объектом MS Office, любого приложения (в частности Office и Excel) является Application. В чём проблема, щас пытаюсь разобраться с объектной моделью Visual Basic. Подскажите она отличается от VBA-шной? Т.е. подключаю объект word:
Вообщем, подскажите, чего я не понимаю? Почему, становится не возможным, работать с объектами Excl-я и Word-а, так как я раньше делал это, спокойно во встроенном редакторе VBA? Возможно, есть какая-то возможность, подключение классов VBA? Ну вообщем, я запутался... сильно. Помогите, пожалуйста.
0
|
02.08.2017, 13:05 | |
Ответы с готовыми решениями:
3
Не могу разобраться с ООП Не могу разобраться с ООП в js Не могу разобраться с ООП Не могу разобраться с ООП |
02.08.2017, 16:21 | 2 |
Сообщение было отмечено Dragokas как решение
Решение
Многое отличается, но вы ведь собрались работать не с объектной моделью VB, а с объектной моделью Word? Она ничем не отличается, потому что это один и тот же самый объект. Единственная разница, что когда выпишите код в макросе, то дефакто уже работаете с текущим документом, т.е. подключены к нему. А в VB вы сперва должны подключиться / открыть / или создать файл), с которым хотите работать. Ещё: при работе в редакторе IDE Word / Excel там библиотека с описанием интерфейсов и констант уже заранее подключена (см. меню Tools => References), а здесь нет, и если хотите явно не указывать константы и иметь выпадающее меню IntelliSense, то нужно вручную подключить эту же библиотеку (название меню такое же). Только учтите, что если подключите таким образом библиотеку, ваш exe-файл будет совместим только с системой, на которой установлена конкретная версия офиса.
Всё тоже самое. В коллекции Documents в данный момент ничего нет, как я уже писал выше, потому что вы не подключены ни к одному документу и/или не создали / не открыли ни одного экземпляра.
1
|
2 / 1 / 1
Регистрация: 26.05.2017
Сообщений: 23
|
|
02.08.2017, 18:32 [ТС] | 3 |
Dragokas,
А если документ уже открыт. Не могу, корректно воспользоваться методом, GetObject , если это верный способ?Добавлено через 9 минут Или это с той оперы... ?
0
|
02.08.2017, 19:02 | 4 |
Смотря что вы хотите. Подключиться к уже открытым документам? Да, либо через GetObject (см. описание), либо через тот код.
Только через GetObject это не всегда получается сделать, уж не знаю почему. А если каждый документ открыт в отдельном процессе, то тем более через GetObject не получится. Добавлено через 1 минуту Кстати, после компиляции в exe, файл tlb вам больше не понадобится.
1
|
02.08.2017, 19:02 | |
02.08.2017, 19:02 | |
Помогаю со студенческими работами здесь
4
Не могу записать в файл Excel при Microsoft.Office.Interop.Excel.Application.Visible = False Никак не могу разобраться с ООП Блокировка документов mc office word,excel Преобразование текста MS Office Word в таблицу Excel Соединение Delphi c Microsoft Office Excel - Word 2003 Начинается настройка MS Office при запуске Excel или Word Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |