2 / 1 / 1
Регистрация: 26.05.2017
Сообщений: 23

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

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

Студворк — интернет-сервис помощи студентам
Всем привет)
Я ток начал разбираться в 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.08.2017, 13:05
Ответы с готовыми решениями:

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

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

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

3
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
02.08.2017, 16:21
Лучший ответ Сообщение было отмечено 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  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
В коллекции Documents в данный момент ничего нет, как я уже писал выше, потому что вы не подключены ни к одному документу и/или не создали / не открыли ни одного экземпляра.
Dragokas,
А если документ уже открыт. Не могу, корректно воспользоваться методом, GetObject, если это верный способ?

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

Добавлено через 1 минуту
Кстати, после компиляции в exe, файл tlb вам больше не понадобится.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.08.2017, 19:02
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru