OLE.CreateLink....?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

OLE.CreateLink....?

Сообщение Rojohn » 25.09.2005 (Вс) 20:07

Как мне стало известно, параметр <SourceItem> в
OLE.CreateLink(SourceDoc As String, SourceItem) может содержать указание на конкретный лист Excel. Как указать в нём конкретную страницу Word?
Спасибо!

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

Сообщение GSerg » 25.09.2005 (Вс) 20:15

Страницы ворда - понятие гораздо более эфемерное, чем листы экселя.
Попробуй привязаться к чему-нибудь более реальному, к закладкам например...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Сообщение Rojohn » 25.09.2005 (Вс) 20:24

К сожалению мне нужно именно пролистать страницы любого документа Word в OLE... Или как ещё сделать предпросмотр документа Word на форме, чтоб страницы листались, но без редактирования? :?

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

Сообщение GSerg » 25.09.2005 (Вс) 20:47

Дык Сервис - Установить защиту... Она же document.protect...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Не...

Сообщение Rojohn » 25.09.2005 (Вс) 20:58

Дык тогда всё равно надо будет активировать Word, а как сделать предпросмотр без активации Word в OLE, т.е. чтобы как в PictureBox-се выводились страницы, а переходить на другие страницы программно (например по кнопке или скролл-бару)?

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

Сообщение GSerg » 25.09.2005 (Вс) 21:02

document.windows(1).pagescroll?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

?

Сообщение Rojohn » 25.09.2005 (Вс) 21:12

Пишу так:
Код: Выделить всё
OLE1.object.Windows(1).PageScroll


Выдаёт ошибку "Запрашиваемый номер семейства не существует". Что не так?

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

Сообщение GSerg » 25.09.2005 (Вс) 21:18

Значит нет такого окна :)
А нет его потому, что документ не активизирован. Тебе в любом случае придётся его как-то открыть :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

?

Сообщение Rojohn » 25.09.2005 (Вс) 21:25

Открыть - значит кликнуть мышкой по OLE? Без этого никак? :? А нельзя как-нить сделать похоже на то, когда на форму ставишь контрол WordDocument. Но по-моему с самим этим контролом ничего сделать нельзя, кроме как создать новый документ и сохранить его.... Или я ошибаюсь?

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

Сообщение GSerg » 25.09.2005 (Вс) 21:32

Почему, открыть можно программно, вопрос лишь в том, действительно ли это нужно :)
А контрола WordDocument не видел и не знаю :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Сообщение Rojohn » 25.09.2005 (Вс) 21:49

А что тогда взамен? Этот контрол (точнее элемент управления) находится в Components-Insertable Objects. Галку ставим напротив "Документ Microsoft Word" и он появляется в панели инструментов. Но как я его не мучил он даже открыть существующий документ не смог :)

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

...

Сообщение Rojohn » 25.09.2005 (Вс) 22:07

Вот если бы можно было открыть документ Word в OLE (не кликая по нему мышкой, а сразу при открытии формы) на нужной странице. Да и ещё так, чтобы не были обрезаны поля... Это совсем невыполнимо? Придётся программировать подобие Word-а и сохранять всё это уже в настоящий Word? :? :) Совсем будет полный изврат... хоть сторонний контрол покупай:)

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

?

Сообщение Rojohn » 25.09.2005 (Вс) 22:13

Может всё-таки параметр <SourceItem> в
OLE.CreateLink(SourceDoc As String, SourceItem) сработает на нужную страницу? Только как его грамотно записать?

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

Сообщение GSerg » 25.09.2005 (Вс) 22:19

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

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

:)

Сообщение Rojohn » 25.09.2005 (Вс) 22:33

И как тогда енто будет выглядеть на VB в OLE.CreateLink(SourceDoc As String, SourceItem)? :)

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

Сообщение GSerg » 25.09.2005 (Вс) 22:37

Ну не знаю - имя закладки, к примеру? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

?

Сообщение Rojohn » 25.09.2005 (Вс) 22:41

Написал:
Код: Выделить всё
OLE1.CreateLink PathBlanc & "Temp.doc", "Page2"


OLE показал мне пустой лист, даже первую страницу не показал:)

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

Сообщение GSerg » 25.09.2005 (Вс) 22:43

А Page2 - это что? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Сообщение Rojohn » 25.09.2005 (Вс) 22:48

Это закладка на второй странице моего документа:))

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

Сообщение GSerg » 25.09.2005 (Вс) 22:51

А если включить в закладку всё содержимое второй страницы? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Сообщение Rojohn » 25.09.2005 (Вс) 22:57

Эээ.... сработало, однако! Спасибо Шаман!:) Осталось всего-ничего:
1) Показать обрезанные поля;
2) Понять, что такое Скрытая закладка и просто и какую лучше...
3) Наверное придётся во время редактирования документа всё время убирать закладки и выставлять заново...

Ну почему Microsoft не может сделать всё комфортабильнЕй?! :)

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 25.09.2005 (Вс) 23:57

И почему эта тема не в разделе VBA?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

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

Сообщение GSerg » 25.09.2005 (Вс) 23:59

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

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 26.09.2005 (Пн) 0:17

Ну да, WINWORD как часть VisualStudio. А вообще - ступил.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


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

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

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 110

    TopList