Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2009, 17:56   #1
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию Excel 2007. Диаграммы...

Всем, привет!
Пытаюсь написать макрос построения красивой диаграммы вот такой:

делаю это следующим образом:
формат рядов данных->формат объемной фигуры->выбираем рельеф, устанавливаем ширину и высоту сверху.


Пробовал с помощью макроредактора определить нужные параметры - Не получилось.

ВОЗМОЖНО РЕШИТЬ ПОСТАВЛЕННУЮ ЗАДАЧУ С ПОМОЩЬЮ МАКРОСА?
nikolai_P вне форума Ответить с цитированием
Старый 13.04.2009, 19:41   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

рисуете на странице два графика, со всеми одинаковими данными, только с разными рельефами, запускаете любую отладку, берете на просмотр оба графика ищете свойство, которым они отличаются. все. в зависимости от удачи, через 5 минут или 5 часов поиска находите результат.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 14.04.2009, 09:53   #3
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Как вариант :
ActiveSheet.ChartObjects(1).Chart.C hartStyle = 30
Если нужно подробнее пиши...
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 14.04.2009, 11:57   #4
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Или так:
ActiveChart.SeriesCollection(1).Poi nts(2).Format.ThreeD.BevelTopType = msoBevelCircle
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 14.04.2009, 12:14   #5
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию Теплее...

To mchip
.ChartStyle = 30
Уже ближе, добавился объем. Теперь как изменить рельеф?

To IgorGO
Цитата:
запускаете любую отладку
Буду признателен если расспишите более подробно предложенный Вами способ. Я с таким не сталкивался!
nikolai_P вне форума Ответить с цитированием
Старый 14.04.2009, 12:23   #6
Acro
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 39
По умолчанию

Если оно есть, то должно быть упомянуто тут -
msdn: Chart Object Members
Acro вне форума Ответить с цитированием
Старый 14.04.2009, 13:12   #7
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

ActiveChart.SeriesCollection(1).Poi nts(2).Format.ThreeD.BevelTopType = index()

Где index():
1 - рельеф круг
2 - рельеф крутой склон
...
5 - рельеф крест

ну и т.д.
Там почему то пробел лишний отображается, при копировании исправь.
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 16.04.2009, 10:54   #8
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию Разобрался) Не получилось только вставить картинку!!!

Вот код , как получить диаграмму на первом посте!
Код:
   
 Set r1 = NewSheet.Range(Cells(4, C_Tab), Cells(3 + CountSheets, C_Tab))
Set r2 = NewSheet.Range(Cells(4, 1), Cells(3 + CountSheets, 1))


Set NewChart = ThisWorkbook.Charts.Add
NewChart.Name = "Динамика " & Sheet(CountSheets).Name & "-" & Sheet(1).Name

With NewChart
    .ApplyChartTemplate ("C:\Documents and Settings\Николай_2\Application Data\Microsoft\Templates\Charts\Столбиковая.crtx")
    .PageSetup.PaperSize = xlPaperLegal 'формат листа диаграммы
    .ChartType = xlColumnClustered 'тип диаграммы
    .Legend.Delete    'убираем легенду
    .SetSourceData Source:=NewSheet.Range("A4")
    .SeriesCollection(1).Values = r1    ' значения
    .SeriesCollection(1).XValues = r2    ' подписи
    .SeriesCollection(1).ApplyDataLabels     'добавить подписи на диаграмму
    .SeriesCollection(1).DataLabels.Position = xlLabelPositionCenter    ' позиция подписей
    .SeriesCollection(1).DataLabels.ShowValue = True    ' показывать значения
    .SeriesCollection(1).DataLabels.Font.Bold = True
    .SeriesCollection(1).DataLabels.Font.Size = 24
    .SeriesCollection(1).DataLabels.Font.Name = "Verdana"
    .SeriesCollection(1).DataLabels.Font.Color = RGB(255, 255, 255)
    .SeriesCollection(1).Interior.Color = RGB(0, 139, 153)
    .SeriesCollection(1).Format.ThreeD.BevelTopDepth = 8    ' здесь устанавливается следующий параметр (формат рядов данных->формат объемной фигуры->Рельеф->сверзу->высота и ширина
    .SeriesCollection(1).Format.ThreeD.BevelTopInset = 8
    .SeriesCollection(1).Format.ThreeD.BevelTopType = msoBevelAngle    ' тип рельефа
    .ChartGroups(1).Overlap = 25     ' здесь устанавливаем параметры ряда->перекрытие ряда и боковой зазор
    .ChartGroups(1).GapWidth = 55
    With .Axes(xlValue)    ' редактируем оси
        .Border.Color = RGB(0, 139, 153)
        .Border.Weight = xlMedium
        .TickLabels.Font.Color = RGB(0, 139, 153)
        .TickLabels.Font.Bold = True
        .TickLabels.Font.Size = 24
        .TickLabels.Font.Name = "Verdana"
    End With
    With .Axes(xlCategory)
        .Border.Color = RGB(0, 139, 153)
        .Border.Weight = xlMedium
        .TickLabels.Font.Color = RGB(0, 139, 153)
        .TickLabels.Font.Bold = True
        .TickLabels.Font.Size = 24
        .TickLabels.Font.Name = "Verdana"
    End With
    With .Axes(xlValue).MajorGridlines
        .Border.Color = RGB(0, 139, 153)
        .Border.Weight = xlHairline
    End With

    .PlotArea.Width = 640    ' уменьшаем слегка диаграмму
    .PlotArea.Left = 240
End With
Application.ScreenUpdating = True
ActiveWindow.Zoom = 86
P.S.
Этой строкой
Код:
 .ApplyChartTemplate ("C:\Documents and Settings\Николай_2\Application Data\Microsoft\Templates\Charts\Столбиковая.crtx")
я применяю шаблон, поскольку на моей диаграмме должен быть ярлычок. Как его вставить на диаграмму из файла я не нашел! Если знаете подскажите!
nikolai_P вне форума Ответить с цитированием
Старый 16.04.2009, 11:19   #9
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Что есть ярлычок?
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 16.04.2009, 15:57   #10
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию

Это *.gif картинка!
nikolai_P вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание диаграммы Excel по значениям переменной Shinoby Microsoft Office Excel 1 08.03.2009 14:23
пример построения диаграммы в Excel(e) FVGK-2009 Общие вопросы C/C++ 6 22.01.2009 20:15
Диаграммы в excel gusluk Microsoft Office Excel 17 07.11.2008 07:02
Excel 2007 WIC Microsoft Office Excel 2 24.11.2007 00:00