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

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

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

Author24 — интернет-сервис помощи студентам
Никак не могу изменить цвет линии 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
27.04.2014, 13:17
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.04.2014, 13:17
Ответы с готовыми решениями:

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

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

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

5
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33069 / 21371 / 8210
Регистрация: 22.10.2011
Сообщений: 36,688
Записей в блоге: 9
27.04.2014, 14:25 2
Stenler, компилятор какой?
0
2 / 2 / 0
Регистрация: 23.07.2013
Сообщений: 11
27.04.2014, 15:01  [ТС] 3
Пишу в 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  [ТС] 4
Проблема всё ещё актуальна. Selection принадлежит классу IDispatchPtr, который, видимо, с другими классами не дружит. После Select вызвать Selection получается, но вот на всё остальное что за ним следует, выдается ошибка.
Неужели никто помочь не может?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33069 / 21371 / 8210
Регистрация: 22.10.2011
Сообщений: 36,688
Записей в блоге: 9
30.04.2014, 14:03 5
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  [ТС] 6
UI, спасибо!
К сожалению этот же код у меня выдает "ShapeRange: не является членом "IDispatch".
0
30.04.2014, 15:32
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Ошибка Docker "Got permission denied while trying to connect to the Docker daemon socket at"
hw_wired 14.02.2025
Разработка с использованием Docker может иногда преподносить неожиданные сюрпризы, и одним из самых распространенных камней преткновения становится ошибка с отказом в доступе к демону Docker. . . .
Ошибка "No 'Access-Control-Allow-Origin' header is present on the requested resource"
hw_wired 14.02.2025
При разработке современных веб-приложений нередко сталкиваешься с ошибкой "No 'Access-Control-Allow-Origin' header is present on the requested resource". Эта проблема возникает из-за политики. . .
Как закрыть порт в Linux
hw_wired 14.02.2025
Управление сетевыми портами в Linux - непростая, но важная задача для обеспечения безопасности системы. Каждый открытый порт - это потенциальная уязвимость, через которую злоумышленики могут. . .
Ошибка Angular "Can't bind to 'taskForm' since it isn't a known property of 'form'"
hw_wired 14.02.2025
При разработке веб-приложений на Angular можно столкнуться с ошибкой "Can't bind to '' since it isn't a known property of 'form'". Эта ошибка появляется в консоли браузера когда мы пытаемся. . .
Сообщение Git "Pulling without specifying how to reconcile divergent branches is discouraged"
hw_wired 14.02.2025
При работе с системой контроля версий Git многие разработчики сталкиваются с предупреждающим сообщением "Pulling without specifying how to reconcile divergent branches is discouraged". Это. . .
Как настроить количество пробелов в отступах табов в Visual Studio Code
hw_wired 14.02.2025
Visual Studio Code предоставляет несколько гибких способов настройки табуляции, каждый из которых имеет свои преимущества. Самый простой и наглядный метод - через графический интерфейс настроек, где. . .
Что означает знак восклицания в TypeScript
hw_wired 14.02.2025
TypeScript - удивительный язык программирования, который предоставляет множество возможностей для работы с типами данных. Особый интерес вызывает оператор утверждения ненулевого значения, который. . .
Как свернуть/скрыть секции кода в Visual Studio Code
hw_wired 14.02.2025
Ежедневно мы работам с файлами, содержащими сотни и тысячи строк кода. Навигация по такому объему становится настоящим испытанием, особенно когда нужно быстро найти нужный метод или переменную. . . .
Автоматическое создание файла requirements.tx­t в Python
hw_wired 14.02.2025
Дружелюбная среда для разработки на Python, один из самых широко используемых языков программирования, состоит не только из самого кода, но и целого ряда важных компонентов. И если вы когда-нибудь. . .
Передача переменных окружения в контейнер Docker
hw_wired 14.02.2025
При работе с Docker контейнерами возникает необходимость передать различные настройки и конфигурационные параметры - от строк подключения к базам данных до API ключей. И хотя можно жестко прописать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru