Возникла задача, в Power Point необходимо, чтобы график (обычная диаграмма) окрашивался при отрицательных значениях в красный, при положительных в зеленый
График строится через графики самого Power point (связи с еселем нет). [moder]Что за название темы? Переделывайте согласно п.2 Правил форума.
Доброго времени суток!
Вопрос не совсем по екселю, но точно по бейсику)
Возникла задача, в Power Point необходимо, чтобы график (обычная диаграмма) окрашивался при отрицательных значениях в красный, при положительных в зеленый
График строится через графики самого Power point (связи с еселем нет). [moder]Что за название темы? Переделывайте согласно п.2 Правил форума.Archy
Сообщение отредактировал Archy - Четверг, 31.03.2016, 17:10
Archy, для двух цветов можно и без макроса: щелкаете ПКМ по ряду данных - формат ряда данных - Заливка: выбираете Сплошная заливка и ставите галочку "Инверсия для чисел <0". Выбираете цвет1 и цвет2.
Если будет больше условий, тогда макрос: [vba]
Код
Sub setFormatCharts() 'Цвета Dim clrGreen As Long: clrGreen = RGB(0, 142, 64) Dim clrGreenLight As Long: clrGreenLight = RGB(169, 225, 169) Dim clrYellow As Long: clrYellow = vbYellow Dim clrRed As Long: clrRed = RGB(192, 0, 0)
For Each sl In ActiveWindow.Selection.SlideRange For Each sh In sl.Shapes If sh.HasChart Then For i = 1 To sh.Chart.SeriesCollection.Count For j = 1 To sh.Chart.SeriesCollection(i).Points.Count With sh.Chart.SeriesCollection(i).Points(j) ' On Error Resume Next Select Case .DataLabel.Text 'Для Ваших условий ' Case Is < 0: .Format.Fill.ForeColor.RGB = clrRed ' Case Is > 0: .Format.Fill.ForeColor.RGB = clrGreen
'Если будет больше условий Case Is < -10: .Format.Fill.ForeColor.RGB = clrRed Case -10 To 0: .Format.Fill.ForeColor.RGB = clrYellow Case 0 To 10: .Format.Fill.ForeColor.RGB = clrGreenLight Case Is > 10: .Format.Fill.ForeColor.RGB = clrGreen End Select End With Next j Next i End If Next sh Next sl End Sub
[/vba] Макрос проходит по всем выделенным слайдам активной презентации, находит все диаграммы и красит ряды, основываясь на значения в подписях данных.
Archy, для двух цветов можно и без макроса: щелкаете ПКМ по ряду данных - формат ряда данных - Заливка: выбираете Сплошная заливка и ставите галочку "Инверсия для чисел <0". Выбираете цвет1 и цвет2.
Если будет больше условий, тогда макрос: [vba]
Код
Sub setFormatCharts() 'Цвета Dim clrGreen As Long: clrGreen = RGB(0, 142, 64) Dim clrGreenLight As Long: clrGreenLight = RGB(169, 225, 169) Dim clrYellow As Long: clrYellow = vbYellow Dim clrRed As Long: clrRed = RGB(192, 0, 0)
For Each sl In ActiveWindow.Selection.SlideRange For Each sh In sl.Shapes If sh.HasChart Then For i = 1 To sh.Chart.SeriesCollection.Count For j = 1 To sh.Chart.SeriesCollection(i).Points.Count With sh.Chart.SeriesCollection(i).Points(j) ' On Error Resume Next Select Case .DataLabel.Text 'Для Ваших условий ' Case Is < 0: .Format.Fill.ForeColor.RGB = clrRed ' Case Is > 0: .Format.Fill.ForeColor.RGB = clrGreen
'Если будет больше условий Case Is < -10: .Format.Fill.ForeColor.RGB = clrRed Case -10 To 0: .Format.Fill.ForeColor.RGB = clrYellow Case 0 To 10: .Format.Fill.ForeColor.RGB = clrGreenLight Case Is > 10: .Format.Fill.ForeColor.RGB = clrGreen End Select End With Next j Next i End If Next sh Next sl End Sub
[/vba] Макрос проходит по всем выделенным слайдам активной презентации, находит все диаграммы и красит ряды, основываясь на значения в подписях данных.Manyasha
Добрый вечер. Помогите, пожалуйста. Очень нужен макрос, который будет делать все тоже самое, только условие задается не по значению подписи, а по значению категории. То есть, все результаты Иванова, например, вне зависимости от того, какой он будет по рейтингу, всегда будут красные. Как не пыталась сама преобразовать макрос, приложенный выше, не получилось. Заранее спасибо.
Добрый вечер. Помогите, пожалуйста. Очень нужен макрос, который будет делать все тоже самое, только условие задается не по значению подписи, а по значению категории. То есть, все результаты Иванова, например, вне зависимости от того, какой он будет по рейтингу, всегда будут красные. Как не пыталась сама преобразовать макрос, приложенный выше, не получилось. Заранее спасибо.VBA_learning
Сообщение отредактировал VBA_learning - Вторник, 18.07.2017, 19:02