Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564

WORD tables (Autowrap стиль)

15.07.2015, 14:34. Показов 1836. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть вот такой вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
Variant vApp = CreateOleObject("Word.Application");
  vApp.OlePropertySet("Visible", true);
  Variant vVarDocs = vApp.OlePropertyGet("Documents");
  vVarDocs.OleProcedure("Add");
  Variant vDoc = vVarDocs.OleFunction("Item", 1);
  Variant vVarPars = vDoc.OlePropertyGet("Paragraphs");
  vVarPars.OleProcedure("Add");    // Добавляем параграф:
  Variant vPar = vVarPars.OleFunction("Item",1); // Работаем с первым параграфом:
  Variant vRan = vPar.OlePropertyGet("Range");
  vDoc.OlePropertyGet("Tables").OleProcedure("Add", vRan, 34, 15, 1, 1);
  Variant vTab = vDoc.OlePropertyGet("Tables").OleFunction("Item",1);
  Variant vCell = vTab.OleFunction("Cell", 1, 1);
Я использую немного другой подход, каждую функцию я обрабатываю через Autowrap:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
IDispatch *pWTables;
    {
        VARIANT result;
        VariantInit(&result);
        AutoWrap(DISPATCH_PROPERTYGET, &result, pWActiveDoc, L"Tables", 0);
        pWTables=result.pdispVal;
    }
IDispatch *pWRng;
    {
        VARIANT result;
        VariantInit(&result);
        AutoWrap(DISPATCH_PROPERTYGET, &result, pSel, L"Range", 0);
        pWRng = result.pdispVal;
    }
В общем возникла проблема в строке:
C++
1
vDoc.OlePropertyGet("Tables").OleProcedure("Add", vRan, 34, 15, 1, 1);
Поидее она должна в моём варианте выглядеть примерно так:
C++
1
2
3
4
5
6
7
8
9
10
{
        VARIANT ct[2];
                ct[0].vt = VT_I4;
        ct[0].lVal = 2;
        ct[1].vt = VT_I4;
        ct[1].lVal = 4;
        AutoWrap(DISPATCH_METHOD, NULL, pWTables, L"Add", 3, pWRng , ct[0], ct[1]);
        VariantClear(&ct[0]);
        VariantClear(&ct[1]);
    }
Но не работает, и я подозреваю что из за того что pWRng в виде аргумента не правильно подаётся, т.е. по сути наверно должно быть тоже через вариант, но не понятно как это сделать..

*Кстати, как видно у меня в примере 3 аргумента, а в другом их 5, пробовал и так и так, не работает. И в интернете тоже по разному пишут, где 3 аргумента, а где 5..

Помогите плз)

Добавлено через 12 минут
Нашёл вариантный тип, но тоже не пашет..
C++
1
2
ct[0].vt = VT_DISPATCH;
ct[0].pdispVal = pWRng;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.07.2015, 14:34
Ответы с готовыми решениями:

Vba word tables
Народ помогите с такой задачей, в доке есть таблицы, мне надо удалить из каждой таблицы по 1 столбцу, который находится в конце и по счету...

Как в Word 2013 создать программно стиль "Абзаца", а не стиль "Связанный (абзац и знак)"
Как в Word 2013 создать программно стиль "Абзаца", а не стиль "Связанный (абзац и знак)". По следующему коду создается стиль...

Чем отличается DataSet.Tables(0).Rows(0).item("Name") от DataSet.Tables(0).Rows(0).ItemArray(i)?
В программе неожиданно перестала работать такая строка: DataSetName.Tables(0).Rows(0).item("FieldName"). Когда поменял это...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.07.2015, 14:34
Помогаю со студенческими работами здесь

Как удалить стиль в MS Word 2013?
Доброго время суток. Столкнулся со следующей проблемой. Создал в Word 3 своих стиля и сохранил для всех документов: В итоге не...

MS WORD - изменить цвет текста и его стиль
Создать программный продукт средствами языка VBA в MS WORD который позволяет: 1. Менять цвет (5 цвета) текства в выделенной области; 2....

Как в Word создать свой собственный стиль оглавления?
Доброго времени суток форумчане, подскажите кто знает как в word создать свой собственный стиль оглавления. Искал в гугл но ничего нет. На...

Как узнать стиль выделенного участка текста, загруженного из Word'a ?
Здравствуйте! Подскажите как можно узнать стиль (жирный, курсив или подчеркнутый) выделенного участка текста методом Selection. В...

Как создать стиль в программе "Word"
Как создать стиль в программе "Word" средствами VBA? Проблема При создании стиля таким способом: ActiveDocument.Styles.Add...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru