Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
2 / 1 / 1
Регистрация: 26.05.2017
Сообщений: 23
1

Не могу разобраться, в ООП с MS Office (word, excel). Именно для VB

02.08.2017, 13:05. Показов 1211. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет)
Я ток начал разбираться в Visual Basic. До этого, активно юзал VBA. Создавал, формачи, кнопачки всякие прикольные штуки друки... немного пользовался ООП. На уровне ворда, экселя, но это всё было на VBA. Везде сказано, что родоначальным объектом MS Office, любого приложения (в частности Office и Excel) является Application.
В чём проблема, щас пытаюсь разобраться с объектной моделью Visual Basic. Подскажите она отличается от VBA-шной?
Т.е. подключаю объект word:

Visual Basic
1
Set oWord = CreateObject("Word.Application")
Почему я не могу работать с объекатми word как бы работал на VBA? Т.е. напр.:
Visual Basic
1
2
3
For each oDoc In oWord.Documents
 MsgBox oDoc.Name
Next
Насколько я понял, так:
Visual Basic
1
oWord.Documents
Вообще, нельзя. Надо:
Visual Basic
1
Set oDoc = CreateObject("Word.Documents")
И работать с объектом oDoc.

Вообщем, подскажите, чего я не понимаю? Почему, становится не возможным, работать с объектами Excl-я и Word-а, так как я раньше делал это, спокойно во встроенном редакторе VBA?
Возможно, есть какая-то возможность, подключение классов VBA? Ну вообщем, я запутался... сильно. Помогите, пожалуйста.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2017, 13:05
Ответы с готовыми решениями:

Не могу разобраться с ООП
Помогите разобраться с ошибками. Что не так делаю? public class Points { Points(double...

Не могу разобраться с ООП в js
Здравствуйте. Просьба специфическая конечно)) но никак не могу понять и освоить ООП на js... если...

Не могу разобраться с ООП
Здравствуйте уважаемые форумчане, в общем такая проблема, не могу осилить ооп, прочитал пару книг,...

Не могу разобраться с ООП
Начал изучать ООП в FreePascal.Завис на конструкторах и идентификаторах в наследовании.Помогите!...

3
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
02.08.2017, 16:21 2
Лучший ответ Сообщение было отмечено Dragokas как решение

Решение

Цитата Сообщение от Schumacher56 Посмотреть сообщение
В чём проблема, щас пытаюсь разобраться с объектной моделью Visual Basic. Подскажите она отличается от VBA-шной?
Многое отличается, но вы ведь собрались работать не с объектной моделью VB, а с объектной моделью Word? Она ничем не отличается, потому что это один и тот же самый объект. Единственная разница, что когда выпишите код в макросе, то дефакто уже работаете с текущим документом, т.е. подключены к нему. А в VB вы сперва должны подключиться / открыть / или создать файл), с которым хотите работать. Ещё: при работе в редакторе IDE Word / Excel там библиотека с описанием интерфейсов и констант уже заранее подключена (см. меню Tools => References), а здесь нет, и если хотите явно не указывать константы и иметь выпадающее меню IntelliSense, то нужно вручную подключить эту же библиотеку (название меню такое же). Только учтите, что если подключите таким образом библиотеку, ваш exe-файл будет совместим только с системой, на которой установлена конкретная версия офиса.

Цитата Сообщение от Schumacher56 Посмотреть сообщение
Почему я не могу работать с объекатми word как бы работал на VBA?
Всё тоже самое.
В коллекции Documents в данный момент ничего нет, как я уже писал выше, потому что вы не подключены ни к одному документу и/или не создали / не открыли ни одного экземпляра.
1
2 / 1 / 1
Регистрация: 26.05.2017
Сообщений: 23
02.08.2017, 18:32  [ТС] 3
Цитата Сообщение от Dragokas Посмотреть сообщение
В коллекции Documents в данный момент ничего нет, как я уже писал выше, потому что вы не подключены ни к одному документу и/или не создали / не открыли ни одного экземпляра.
Dragokas,
А если документ уже открыт. Не могу, корректно воспользоваться методом, GetObject, если это верный способ?

Добавлено через 9 минут
Или
Цитата Сообщение от Dragokas Посмотреть сообщение
Schumacher56, у вас амнезия? Я вам в разделе VBA позавчера написал код как это сделать.
это с той оперы... ?
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
02.08.2017, 19:02 4
Смотря что вы хотите. Подключиться к уже открытым документам? Да, либо через GetObject (см. описание), либо через тот код.
Только через GetObject это не всегда получается сделать, уж не знаю почему. А если каждый документ открыт в отдельном процессе, то тем более через GetObject не получится.

Добавлено через 1 минуту
Кстати, после компиляции в exe, файл tlb вам больше не понадобится.
1
02.08.2017, 19:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.08.2017, 19:02
Помогаю со студенческими работами здесь

Не могу записать в файл Excel при Microsoft.Office.Interop.Excel.Application.Visible = False
Коллеги, доброго времени суток. Столкнулся с такой проблемой. Не могу записать в файл, когда...

Никак не могу разобраться с ООП
В общем товарищи не могу сделать простого(наверное) Нужно привести в красивый вид, избавится от...

Блокировка документов mc office word,excel
Здравствуйте, помогите пожалуйста умные люди) столкнулась с такой проблемой( не могу открыть...

Преобразование текста MS Office Word в таблицу Excel
Уважаемые форумчане! Я пытаюсь освоить программирование на VB net. Столкнулся с тем, что нигде...

Соединение Delphi c Microsoft Office Excel - Word 2003
И снова здравствуйте) спасибо ребятам "Санек25 и БогДелфей" за решение предыдущей проблемы, очень...

Начинается настройка MS Office при запуске Excel или Word
Сегодня с утра открываю excel-файлик - получаю такую, что выполняется настрйока. До этого 3 года...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru