如何用vba设置图表的坐标轴?

在vba中图表对象Chart的Axes方法可以返回图表的坐标轴。

它可以返回单个坐标轴(横坐标轴或者纵坐标轴)或者所有坐标轴的集合。

它的语法如下:

expression. Axes( _Type_ , _AxisGroup_ )

其中Type参数为要返回的坐标轴的类型,可以是以下值:

名称 说明
xlCategory 1 横坐标轴
xlValue 2 纵坐标轴
xlSeriesAxis 3 系列坐标轴

AxisGroup参数为要返回主坐标轴还是次坐标轴,可以是以下值:

名称 说明
xlPrimary 1 主坐标轴
xlSecondary 2 次坐标轴

在vba中Axis对象表示图表中的单个坐标轴,Axes对象表示图表中的坐标轴集合。

如果要返回坐标轴集合,只需将Axes方法的两个参数省略即可。

以下vba代码举例说明了如何设置图表的纵坐标轴的最大、最小刻度值以及坐标轴的单位和横坐标轴显示的数值格式。

Sub QQ1722187970()
    '创建内嵌的图表
    Dim oWK As Worksheet
    Set oWK = Sheet1
    Dim oChart As Chart
    Set oChartObject = oWK.ChartObjects(1)
    Set oChart = oChartObject.Chart
    Dim oSeries As Series
    Dim oTL As TickLabels
    '单个坐标轴
    Dim oA As Axis
    '坐标轴集合
    Dim oAS As Axes
    Dim vXV
    Dim vValues
    Dim vBS
    With oChart
        '设置纵坐标
        Set oAZ = .Axes(xlValue, xlPrimary)
        With oAZ
            '坐标轴的大单位
            .MajorUnit = 10
            '坐标轴的小单位
            .MinorUnit = 5
            '最小刻度值
            .MinimumScale = 0
            '最大刻度值
            .MaximumScale = 100
            '横坐标交叉于纵坐标的具体刻度值
            .CrossesAt = 10
            Set oTL = .TickLabels
            '设置坐标轴的数值标记的数值格式
            With oTL
                .NumberFormat = "0"
            End With
        End With
        '设置横坐标
        Set oAH = .Axes(xlCategory, xlPrimary)
        With oAH
            Set oTL = .TickLabels
            '设置坐标轴的数值标记的数值格式
            With oTL
                .NumberFormat = "0"
            End With
        End With
    End With
End Sub
       

发表评论