Excel VBA - Как установить стиль линий для ряда диаграмм? - PullRequest
2 голосов
/ 09 января 2012

Мне бы хотелось, чтобы линии графика на графике были либо сплошными, либо круговыми, либо квадратными, основываясь на определенных критериях, указанных пользователем.Я могу успешно установить цвет линии и стиль маркера для графика, используя макрос, но я не могу найти объект, который содержит значение для свойства стиля линии графика.Я пытался использовать функцию записи макроса, но изменение стиля линии в окнах свойств не отображается в коде, а запуск записанного макроса не имеет никакого эффекта.

Любая помощь очень ценится!

Ответы [ 3 ]

4 голосов
/ 17 декабря 2012

Создайте диаграмму с 255 рядами данных, запустите код (и при необходимости выполните другое форматирование). Затем сохраните его как шаблон.

Sub dd()

Dim wb As Workbook
Set wb = Application.ActiveWorkbook

Dim myChart As Chart
Set myChart = wb.Charts("Chart5")

Dim mySeries As series

For Each mySeries In myChart.SeriesCollection
    mySeries.Format.Line.Weight = 1#
Next

End Sub
2 голосов
/ 09 января 2012
YourChartSeries.Border.LineStyle = [some value from the XlLineStyle enumeration]

ОБНОВЛЕНИЕ: запись в XL 2010 Я получаю это -

ActiveChart.SeriesCollection(1).Select
With Selection.Format.Line
    .Visible = msoTrue
    .DashStyle = msoLineSysDot
End With
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Line
    .Visible = msoTrue
    .DashStyle = msoLineSysDash
End With

Что может быть тем, что вы ищете.

0 голосов
/ 21 февраля 2014

Если у вас есть линейный график, я закончил тем, что создал оператор switch, потому что я не мог понять, как создать массив переменных «Name». Смотрите список типов линий здесь

For j = i To num_lines_to_plot
        count = count + 1
        ActiveChart.SeriesCollection.NewSeries
        With ActiveChart.SeriesCollection(j)
            .Name = _
                "='"**... (you'll need to fill this in)**
            'create gradient
            .Format.Line.ForeColor.RGB = RGB(255, 20 * count, 0)
            'modify linetype
            If count > 4 Then
                line_type = count Mod 4
            Else
                line_type = count
            End If

            Select Case line_type
                Case Is = 1
                    .Format.Line.DashStyle = msoLineSolid
                Case Is = 2
                    .Format.Line.DashStyle = msoLineSquareDot
                Case Is = 3
                    .Format.Line.DashStyle = msoLineDash
                Case Is = 4
                    .Format.Line.DashStyle = msoLineLongDash
                End Select

        End With
    Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...