1

Excel VBA を使用してグラフを作成しましたが、線の色と X 軸の間隔を調整したいと考えています。

以下はコードです:

Sub add_cpu_chart(server_hostname, site)
    On Error Resume Next

    Dim rpt_site As String
    rpt_site = site

    Set tbl = ThisWorkbook.Sheets(server_hostname).ListObjects(1)
    strTableName = tbl.Name
    strTableRange = tbl.Range.Address

    Dim m_s_name, m_e_name As Date

    m_s_name = CDate(fromDateStr)
    m_e_name = CDate(toDateStr)

    'Create new embedded chart
    Set shp = ThisWorkbook.Sheets(server_hostname).Shapes.AddChart

    'Position Shape over range

    shp.Top = 100
    shp.Left = 200

    With shp
        With .Chart
            'Specify source data and orientation
            '.SetSourceData Source:=ActiveSheets.Range(Table1 & "[#All]"), _
            'PlotBy:=xlRows
            .SetSourceData Source:=ThisWorkbook.Sheets(server_hostname).Range(strTableName & "[#All]")
            .ChartType = xlLineMarkers
            .SetElement (msoElementChartTitleAboveChart)
            .HasTitle = True
            .ChartTitle.Text = "CPU Utilization of " & server_hostname & " in " & _
            rpt_site & " (" & Format(m_s_name, "dd-Mmm") & " to " & Format(m_e_name, "dd-Mmm yyyy") & ")"
            .ChartTitle.Font.Size = 14
            '.ChartArea.Font.Size = 14
            .Legend.Delete

            .SetElement (msoElementPrimaryValueAxisTitleRotated)
            .Axes(xlValue, xlPrimary).AxisTitle.Text = "CPU Utlization (%)"
            .Axes(xlValue, xlPrimary).AxisTitle.Font.Size = 10
            .Axes(xlValue).MinimumScale = 0
            .Axes(xlValue).MinorUnit = 2
            .Axes(xlValue).MaximumScale = 100
            .Axes(xlValue).MajorUnit = 20
            .Axes(xlValue).TickLabels.NumberFormat = "General"

            .SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
            .Axes(xlCategory, xlPrimary).AxisTitle.Text = "Date of the Month"
            .Axes(xlCategory, xlPrimary).AxisTitle.Font.Size = 10
            '.Axes(xlCategory).MajorUnit = 1
            .Axes(xlCategory).TickLabels.NumberFormat = "d"
            With .PlotArea.Format.Fill
                .Visible = msoTrue
                .ForeColor.ObjectThemeColor = msoThemeColorBackground1
                .ForeColor.TintAndShade = 0
                .ForeColor.Brightness = -0.150000006
                .Transparency = 0
                .Solid
            End With
        End With
    End With
End Sub

Excel 2003 のように線の色を赤に変更し、2 日間隔でデータを変更したいと考えています。現在、データはフォーム1,2,3,4...にデータを表示したいフォームにあり1,3 ,5...ます。

4

1 に答える 1

6

折れ線グラフでは、X軸の最小スケール、最大スケール、メジャーユニット、およびマイナーユニットは無意味です。X値は、ラベルに数字が表示されていても、数値が解釈されない単なるカテゴリです。

おそらくXYチャートに変更する必要があります。これにより、最小スケール、最大スケール、メジャーユニット、およびマイナーユニットを使用して軸スケールを完全に制御できます。もちろん、XYグラフでは、折れ線グラフと同じシリーズマーカーと線の書式設定が可能ですが、紛らわしい用語は永遠に存続します。

何らかの理由で折れ線グラフを使用することにした場合は、次を使用できます。

ActiveChart.Axes(xlCategory).TickLabelSpacing = 2
于 2012-06-12T11:41:33.050 に答える