С Vba на C++
Есть коды из макроса:
1)
Продвинулась в Билдере только до этого момента:
Дальше по справке ничего нет. Да и то, задашь get_Sections(1) - ошибка. Свойства Sections как такового нет.
2)
Нужно вставить в Ворд диаграмму из Эксела (из буфера, куда она была скопирована). Код такой:
В Билдере близко такого нет. Вот все что есть:
Код этот не работает. Хотя в буфере диаграмма есть.
Кто может, помогите. Информации на сайтах по нулям. Все, что есть - это начало работы с Вордом. Этого уже мало.
WordApplication1->ActiveDocument->Sections->Item(1)->Footers->Item(wdHeaderFooterPrimary)->Range->set_Text(...);
тоже не работает?
На счет второго, есть еще PasteSpecial().
WordApplication1->ActiveDocument->Sections->Item(1)->Footers->Item(wdHeaderFooterPrimary)->Range->set_Text(...);
тоже не работает?
Ура! Работает. Самое интересное, что нечто подобное я пыталась откомпелировать. Выдавалась ошибка, что Sections не является членом ActiveDocument. Да и в свойствах ActiveDocument я Sections не нашла. Искала тщательно.
Спасибо за помощь. Похоже, на трех форумах , Вы единственный, кто разбирается в Ворде.
Но помогите, пожалуйста, еще по второму вопросу.
VARIANT* Link/*[in,opt]*/= TNoParam(),
VARIANT* Placement/*[in,opt]*/= TNoParam(),
VARIANT* DisplayAsIcon/*[in,opt]*/= TNoParam(),
VARIANT* DataType/*[in,opt]*/= TNoParam(),
VARIANT* IconFileName/*[in,opt]*/= TNoParam(),
VARIANT* IconLabel/*[in,opt]*/= TNoParam()) = 0; // [176]
Это в справке Билдера. Похоже, задать нужно Link. Но как задается этот параметр, черт его знает. Остальные, понятно, EmptyParam.
Но может я не права.
Но ни PasteFormat не работает вообще, ни Paste -вставляется не диаграмма, а таблица с данными.
Как быть?
Это в справке Билдера. Похоже, задать нужно Link. Но как задается этот параметр, черт его знает. Остальные, понятно, EmptyParam.
Но может я не права.
Но ни PasteFormat не работает вообще, ни Paste -вставляется не диаграмма, а таблица с данными.
Как быть?
Лучше читать справку Word-а.
F1->Programming Information->Microsoft Word Visual Basic Reference->Methods->P->PasteSpecial
Вроде нужно только указать для параметра DataType тип вставляемого объекта. Но среди WdPastDataType нет типа wdChartPicture. Есть только wdPasteBitmap. Но это не совсем хорошо, при печати надписи будут не четкыми.
При вставке графика в карман в Excele, можно бы использовать команду CopyPicture с параметром xlPicture и тогда возможно можно будет для DataType задать параметр wdPasteMetafilePicture.
PasteFormat это вроде используется вместе с CopyFormat и передается только формат параграфа.
Мне подсказали на другом форуме. Оказывается, там и есть PasteAndFormat. Но когда я переделываю код макроса на
выдается сообщение, что PasteAndFormat не является членом структуры Word_2k::Selection.
Где можно посмотреть структуру этой библиотеки?
Где можно посмотреть структуру этой библиотеки?
$(BCB)\OCX\Servers
$(BCB)\OCX\Servers
Опаньки!
У меня в этой папке только два каталога:
Chartfx и Vci. А Servers нет.
Билдер 6.0. Может что-то нужно было ставить отдельно?
Лучше читать справку Word-а.
F1->Programming Information->Microsoft Word Visual Basic Reference->Methods->P->PasteSpecial
Вроде нужно только указать для параметра DataType тип вставляемого объекта. Но среди WdPastDataType нет типа wdChartPicture. Есть только wdPasteBitmap. Но это не совсем хорошо, при печати надписи будут не четкыми.
При вставке графика в карман в Excele, можно бы использовать команду CopyPicture с параметром xlPicture и тогда возможно можно будет для DataType задать параметр wdPasteMetafilePicture.
PasteFormat это вроде используется вместе с CopyFormat и передается только формат параграфа.
Ура!:P Все получилось именно по этой схеме.
OleVariant Link=wdPasteMetafilePicture;
WordApp->Selection->PasteSpecial(EmptyParam, EmptyTr, EmptyParam, EmptyParam, Link, EmptyParam, EmptyParam);
Спасибо огромное! Очень выручил!
Опаньки!
У меня в этой папке только два каталога:
Chartfx и Vci. А Servers нет.
Билдер 6.0. Может что-то нужно было ставить отдельно?
word2_xp.h может быть в ..\CBuilder6\Include\VCL
word2_xp.h может быть в ..\CBuilder6\Include\VCL
Сам файл, действительно, находится в этой папке. Что касается PasteAndFormat, то все в одной фразе:
Поскольку я пока ограничивалась word_2k.h, то не знала, что эти две библиотеки вместе не используются. Либо...либо. Ну а мне это не удобно. Программа достаточно большая, чтобы все в ней менять. А потом, в нашей конторе еще есть ПК, где стоит 2000 Office. Пока не знаю, как поведет себя библиотека word_xp.h. Тем более, уже в ней нет необходимости.:D