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

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

02.08.2017, 13:05. Показов 1376. Ответов 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 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru