2012-06-04 9 views
1

Excel VBA를 사용하여 차트를 만들고 선 색과 x 축 간격을 조정하고 싶습니다. 다음은 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 

- 엑셀 2003으로 -뿐만 아니라, 이일에 의해 분리 된 간격으로 데이터를 변경합니다. 현재 데이터 형식은 1,2,3,4...입니다. 데이터 형식을 1,3 ,5...으로 표시하고 싶습니다.

+3

'나는 1, 3, 보여주고 싶은 5..' 그래서 어디 있는지 너 붙어있어? 어떤 오류가 발생하고 있습니까? 'On Error Resume Next'로 시작할 때 어떤 오류가 나올지는 모르겠지만. 해당 줄을 제거하십시오 :) –

+0

@ 이반 찬, 문제를 해결하는 유용한 해결책을 찾으면 받아 들일 수있는 것으로 표시하십시오. 그렇지 않으면 사람들이 귀하의 질문에 대한 답변을 주저하게 될 수 있습니다. – JackOrangeLantern

답변

6

꺾은 선형 차트에서 X 축의 최소 축척, 최대 축척, majorunit 및 minorunit은 의미가 없습니다. X 값은 레이블이 숫자를 나타내더라도 해석 된 숫자 값이없는 범주 일뿐입니다.

아마도 minimumscale, maximum scale, majorunit 및 minorunit을 사용하여 축척을 완벽하게 제어 할 수있는 XY 차트로 변경해야합니다. 물론 XY 차트는 선형 차트에서와 같이 시리즈 마커와 선의 동일한 형식을 허용하지만 혼동을 야기하는 용어는 영원히 계속됩니다.

당신은 선형 차트를 고수하기로 결정 어떤 이유로, 당신은 ActiveChart.Axes (xlCategory) .TickLabelSpacing를 사용할 수있는 경우 = 2

+0

그래프 마스터의 +1. thx Jon –

+0

나는 대답을 받아들이는 방법을 모른다. –