vVarApp=CreateOleObject("Word.Application");
vVarDocs=vVarApp.OlePropertyGet("Documents");
vVarDocs.OleProcedure("Open","File.doc");
V=vVarApp.OlePropertyGet("Selection");
V.OleFunction("WholeStory");
V.OleFunction("Copy");
Memo1->PasteFromClipboard();
vVarApp.OleProcedure("Quit");
MSWord. Ole. Импорт из Колонтитула.
Импорт текста осуществляю простым кодом:
Код:
В процессе эксплуатации возникла проблема: Некоторые открываемые в программе файлы содержат текст в колонтитулах. Текст из колонтитулов данный код не берет. Помогите разобраться, как считать текст из колонтитула.
Наверное только обрабатывая страницу за страницей. Или попробовать сохранять в текстовый файл
Selection - WholeStory считывает с активной страницы, в которую колонтитул не входит.
То есть каким-то образом необходимо колонтитул сделать активным.
А постранично myWinWordApp.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader вроде переходит на верхний колонтитул
А на нижний myWinWordApp.ActiveWindow.ActivePane.View.SeekView = 10 (хз как константа называется скорее всего wdSeekCurrentPageFooter)
Вот для самой страницы:
Код:
vVarDoc=vVarDocs.OleFunction("Item",1);
vVarDoc.OleProcedure("Activate");
vVarDoc.OleProcedure("Activate");
В библиотеке MSWORD.OLB, вообще слабо понятно что есть колотнитул, быть может HeaderFooter, но у этого нет метода Activate.
Да, HeaderFooter
зачем вам метод Activate?
Цитата: Phodopus
Visual Basic и OLE стоят рядом тут.
Да, HeaderFooter
зачем вам метод Activate?
Да, HeaderFooter
зачем вам метод Activate?
В word посмотрел в макросе как происходит выделение текста основного документа и колонтитула.
Код:
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.WholeStory
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.WholeStory
Selection.WholeStory
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.WholeStory
Потому решил, что мне нужен метод Activate. Если не нужен - это может и хорошо, но это не проясняет для меня
как решить задачу.
И да, я не вижу метода Activate тут опять же.
Цитата: Phodopus
У меня не получалось выделить документ с колонтитулами. Скажете как вы это делали - гляну.
И да, я не вижу метода Activate тут опять же.
И да, я не вижу метода Activate тут опять же.
Берем документ, начинаем запись макроса: открываем колонтитул, нажимаем Ctrl+A, закрываем колонтитул, переходим в основной текст, нажимаем Ctrl+A. Останавливаем запись.
Это не выделение документа с колонтитулами, а по отдельности. Т.е. по сути то, о чем я писал в первом своем посте
Цитата: Phodopus
Это не выделение документа с колонтитулами, а по отдельности. Т.е. по сути то, о чем я писал в первом своем посте
Хорошо, пусть так, но так какие пару строк написать, чтобы решить поставленную задачу?
Думаю проще всего будет вариант 2 попробовать.
А как его реализовать-то?)) не получается перевести Basic в С++
Также, как реализовывали в первый раз. Посмотрите что происходит при сохранении в текстовый файл и запустите то же самое через OleFunction.