КАК Загрузить документ MS Word?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
RomanReaL
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 26.04.2007 (Чт) 12:17

КАК Загрузить документ MS Word?

Сообщение RomanReaL » 17.08.2007 (Пт) 11:14

КАК Загрузить документ MS Word? Вот вообщем-то и все... 8)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.08.2007 (Пт) 11:22

Хороший мальчик.
Возьми с полки пирожок.


tag_warning
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

RomanReaL
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 26.04.2007 (Чт) 12:17

Сообщение RomanReaL » 17.08.2007 (Пт) 11:36

Сори

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 659
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 17.08.2007 (Пт) 12:30

Word Application в поиск. Вот вобщем то и все... 8)
Утро добрым не бывает!

RomanReaL
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 26.04.2007 (Чт) 12:17

Сообщение RomanReaL » 20.08.2007 (Пн) 9:36

gjghjc
Странное имя... :?
Но, спасибо! :D
Попробую...

nappel
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 14.10.2004 (Чт) 11:55
Откуда: Moscow

Обработка документов Word

Сообщение nappel » 20.08.2007 (Пн) 12:01

>КАК Загрузить документ MS Word?

Dim wrd As New Word.Application - объявить экземпляр Word как COM - раннее связывание!
Dim St As String - просто объявление переменной для пути к файлу
St = App.Path ''Путь к программе
St = St + "\oflameron-form2.xml" ''Путь к XML шаблону
wrd.Visible = True ''Загрузить редактор Word
Set doc = wrd.Documents.Add(St) ''Загрузить документ в Word (шаблон)

Этот кусочек кода скопирован с http://guide.oflameron.ru/ (извините, копирайт).

Рассмотрим текст.
St = App.Path - в переменную записывается путь к EXE-шнику. Предполагается, что документ лежит в том же каталоге.
St = St + "\oflameron-form2.xml - создается полный путь к документу. И не обязательно XML. Просто укажите название своего документа Word. Например, igra.doc

wrd.Visible = True - загрузить редактор Word

Set doc = wrd.Documents.Add(St) - загрузить указанный Вами документ в редактор Word. Все. Теперь можно его обрабатывать и Вашей программы на VB - редактированть, менять шрифты и оформление, сохранять, печатать и т.д.

Если надо, могу еще ссылок дать!
С уважением

RomanReaL
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 26.04.2007 (Чт) 12:17

Сообщение RomanReaL » 20.08.2007 (Пн) 12:08

nappel
У меня не .NET, а Visual Basic 6.0 только бейсик
мне кажется, что код может не заработать,
но все равно спасибо, я попробую, а потом напишу как получилось,
с уважением

nappel
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 14.10.2004 (Чт) 11:55
Откуда: Moscow

Сообщение nappel » 20.08.2007 (Пн) 12:13

RomanReaL писал(а):nappel
У меня не .NET, а Visual Basic 6.0 только бейсик
мне кажется, что код может не заработать,
но все равно спасибо, я попробую, а потом напишу как получилось,
с уважением


А это кстати и написано на VB6

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 659
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 20.08.2007 (Пн) 12:18

RomanReaL
Раннее связывание хорошо тем что поставив точку после wrd (объявленного ранее как Dim wrd As New Word.Application ) ты увидишь все свойства и методы. Кстати уважаемый nappel забыл что не плохо было бы зайти в Tools -> Reference и поставить галочку напротив Microsoft Word XX.X Object Library. (Хотя может в NET этого делать и не надо)
Но если на машине конечного пользователя будет стоять весрия отличная от твоей то возникнут БОЛЬШИЕ грабли.

При использовании CreateObject грабли МОГУТ (но не факт что возникнут) возникнуть при использовании юзером старшей версии офиса чем твоя. Однако при таком "общении" с вордом тебе прийдется держать открытым VBA, потому что как я думаю ты вряд ли помнишь на память все свойства и методы WordApplication :)
Вот, вроде бы ничего не напутал.

Added
А что касается имени.... Мне нравится :)
Последний раз редактировалось gjghjc 20.08.2007 (Пн) 12:22, всего редактировалось 1 раз.
Утро добрым не бывает!

RomanReaL
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 26.04.2007 (Чт) 12:17

Сообщение RomanReaL » 20.08.2007 (Пн) 12:20

nappel
gjghjc
Спасибо!

nappel
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 14.10.2004 (Чт) 11:55
Откуда: Moscow

Сообщение nappel » 20.08.2007 (Пн) 12:43

gjghjc писал(а):RomanReaL
Раннее связывание хорошо тем что поставив точку после wrd (объявленного ранее как Dim wrd As New Word.Application ) ты увидишь все свойства и методы. Кстати уважаемый nappel забыл что не плохо было бы зайти в Tools -> Reference и поставить галочку напротив Microsoft Word XX.X Object Library. (Хотя может в NET этого делать и не надо)
Но если на машине конечного пользователя будет стоять весрия отличная от твоей то возникнут БОЛЬШИЕ грабли.

При использовании CreateObject грабли МОГУТ (но не факт что возникнут) возникнуть при использовании юзером старшей версии офиса чем твоя. Однако при таком "общении" с вордом тебе прийдется держать открытым VBA, потому что как я думаю ты вряд ли помнишь на память все свойства и методы WordApplication :)
Вот, вроде бы ничего не напутал.



Все верно. Я просто не стал срисовывать с веб сайта
все подряд. Действительно, библиотеку Word-а надо сначала подключить. Причем важный момент. Когда Вы пишете свою программу на VB, Вы подключаете, например версию Word 2003. А на компе, куда Вы принесете свою программу, может стоять, например, Word из Office 87. И тогда может не заработать. Но, если Вы пишете для себя, для своей конторы или для компьютерного класса и Вы знаете, какая версия Office там работает, то выбирайте и подключайте такую же. И больше не будет проблемм - т.е. на Вашей машине должна быть такая же.

Когда будете делать инсталляционный пакет, эту библиотеку можно и нужно включать в пакет установки. Нужно будет ставить галочки при генерации инсталляционного пакета.

Раннее связывание действительно гораздо приятнее позднего. Прелесть именно "в точечке". Подсказки чрезвычайно удобны.

И еще. Если что-то не понятно. То сделайте следующее. Откройте Word. Включите режим "Запись макроса". Выполните нужные Вам действия. Остановите запись макроса. Зайдите в "Редактирование макроса". И Вы увидите почти ТЕ коды, которые Вам понадобятся. Правда, макрос может не все, но очень многое. И Вам это будет существенной подсказкой.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 20.08.2007 (Пн) 12:56

В принципе, никто не мешает использовать раннее связывание и "точечки", а после того, как все будет отлажено, заменить на позднее связывание.
Lasciate ogni speranza, voi ch'entrate.

nappel
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 14.10.2004 (Чт) 11:55
Откуда: Moscow

Сообщение nappel » 20.08.2007 (Пн) 13:12

alibek писал(а):В принципе, никто не мешает использовать раннее связывание и "точечки", а после того, как все будет отлажено, заменить на позднее связывание.


А смысл?

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 659
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 20.08.2007 (Пн) 13:20

А чтобы от версий ворда не зависеть.
Кстати очень хороший вариант.
Утро добрым не бывает!

Ol1965
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 21.02.2005 (Пн) 9:29

Сообщение Ol1965 » 21.08.2007 (Вт) 12:15

Добрый день,
Вопрос по схожей теме. Рассматривается не Word, a Excel. Но я думаю, принципиальных различий нет. Вопрос: так как указано выше, работаем с Excel. Далее закрываем Excel и не перезапуская программу обрабатываем другой файла (тоже Excel) после этого возникают ошибки передаваемые непосредственно Excel. Как правильно работать с программой из MS Office приложения (наверно есть какое то свойство, метод полностью выгружающий Excel). Заранее спасибо.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.08.2007 (Вт) 12:22

Как ни странно, Quit.
Lasciate ogni speranza, voi ch'entrate.

Ol1965
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 21.02.2005 (Пн) 9:29

Сообщение Ol1965 » 21.08.2007 (Вт) 14:24

Согласен, но если не перезапускать программу, а просто закрыть Excel - Excel.exe остается в процессах. Что как я понял и вызывает ошибки. Как бы выгрузить этот процесс.

RomanReaL
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 26.04.2007 (Чт) 12:17

Сообщение RomanReaL » 22.08.2007 (Ср) 10:30

nappel
gjghjc
Но то, что открывается не совсем то, что я хотел,
этот код равносилен API функции ShellExcute,
а мне необходимо просто получить текст из ворда и открыть его в своем текстовом поле, но вся проблема, что я не знаю его кодировки

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 659
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 22.08.2007 (Ср) 13:36

RomanReaL писал(а):этот код равносилен API функции ShellExcute,

Вот тут ты не прав.

Код: Выделить всё
wrd.Visible = True - загрузить редактор Word
Set doc = wrd.Documents.Add(St)
wrd.selection.WholeStory
wrd.Selection.Copy


Это равносильно следующей последовательности "Открыть документ" "Выделить все" "Копировать".

А зачем тебе текст из документа помещать в свое текстовое поле?
Разберись с тем что тебе написали. Еще раз сходи в поиск по Word.Application. И работай с вордовскими документами напрямую.
Утро добрым не бывает!

RomanReaL
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 26.04.2007 (Чт) 12:17

Сообщение RomanReaL » 23.08.2007 (Чт) 10:49

gjghjc
У меня программулька такая 8)
Спасибо за последнее сообщение, вот то, что мне и было нужно! :D


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 44

    TopList