2 / 2 / 0
Регистрация: 23.07.2013
Сообщений: 11

Изменение цвета фигуры в Excel через COM

27.04.2014, 13:17. Показов 2229. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Никак не могу изменить цвет линии Excel в C++. В самом экселе макрос выглядит так:
Visual Basic
1
2
ActiveSheet.Shapes.AddLine(x1,y1,x2,y2).Select
Selection.ShapeRange.Line.ForeColor.SchemeColor = 10
Линию в C++ не составило труда нарисовать примерно таким кодом:
C++
1
ActiveSheet->Shapes->AddLine(x1,y1,x2,y2)
А вот изменить цвет линии никак не получается. Пробовал уже кучу вариантов.
Должно быть примерно так, по аналогии:
C++
1
2
ActiveSheet->Shapes->AddLine(x1,y1,x2,y2)->Select
Selection->ShapeRange->Line->ForeColor->SchemeColor = 10
Но программа выдает ошибку "Excel::Shape::Select: в вызове функции отсутствует список аргументов; используйте "&Excel::Shape::Select" для создания указателя на член".
Если кто знает как осуществить задуманное, напишите, пожалуйста! Не очень хочется чтобы несколько часов жизни были потрачены впустую.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.04.2014, 13:17
Ответы с готовыми решениями:

Изменение цвета фигуры
Ребятки! Помогите, пожалуйста! Во вложении пример того, что мне нужно сделать: Есть кнопочки-фигурки (Январь, Ферваль, Март), а...

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

Изменение цвета фигуры при заполнении ячейки
Здравствуйте. Помогите разобраться и возможно ли это для фигур. В кратце, сделан план зала клуба, столы нарисованы фигурами...

5
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33379 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
27.04.2014, 14:25
Stenler, компилятор какой?
0
2 / 2 / 0
Регистрация: 23.07.2013
Сообщений: 11
27.04.2014, 15:01  [ТС]
Пишу в Visual Studio 2010.
Получилось выделить линию:
C++
1
2
ActiveSheet->Shapes->Item(1)->Name="1";
ActiveSheet->Shapes->Item("1")->Select();
Дальше примерно это:
C++
1
ActiveSheet->Selection->ShapeRange->Line->ForeColor->SchemeColor=10;
Но ругается на все варианты, как и в первом случае.
0
2 / 2 / 0
Регистрация: 23.07.2013
Сообщений: 11
30.04.2014, 13:06  [ТС]
Проблема всё ещё актуальна. Selection принадлежит классу IDispatchPtr, который, видимо, с другими классами не дружит. После Select вызвать Selection получается, но вот на всё остальное что за ним следует, выдается ошибка.
Неужели никто помочь не может?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33379 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
30.04.2014, 14:03
MSVS не держу, в Билдере это делается вот так:
C++
1
2
3
4
5
6
    Variant wss = wbs.OlePropertyGet("Worksheets");
    Variant ws = wss.OlePropertyGet("Item", 1);
    Variant lin = ws.OlePropertyGet("Shapes").OleFunction("AddLine", 10, 10, 200, 200);
    lin.OleProcedure("Select");
    app.OlePropertyGet("Selection").OlePropertyGet("ShapeRange").OlePropertyGet
        ("Line").OlePropertyGet("ForeColor").OlePropertySet("SchemeColor", 10);
1
2 / 2 / 0
Регистрация: 23.07.2013
Сообщений: 11
30.04.2014, 15:32  [ТС]
UI, спасибо!
К сожалению этот же код у меня выдает "ShapeRange: не является членом "IDispatch".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.04.2014, 15:32
Помогаю со студенческими работами здесь

Изменение цвета фигуры в зависимости от положения на форме
Условие такое. Есть формула по изменению цвета(в данном случае от жёлтого к красному): RGB(255,(255*(x-xo)/(xmax-xo); В формуле ниже за...

Изменение цвета ячейки в Excel
Помогите, как сделать в Excel так, чтобы было изменение цвета ячейки в зависимости от приближения к контролькой дате, установленной в этой...

VBA Excel Изменение цвета ячейки
Есть ячейка G3 в которой выводится значение либо "промах" либо "попадание" в зависимости от расчетов (задача на моделирование), нужен...

Изменение цвета подписей оси Х в EXCEL 2007
День добрый, уважаемые форумчане! К сожалению, подобной темы на форуме не нашла, но если что, прошу тапками не кидать)) Проблема у меня...

Изменение цвета подписи на графике - Excel 2010
Всем привет! Всех с наступающим!!! У меня на графике некоторые столбики помечены подписями. "Б" - база расчета, "Х" -...


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

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

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru