2011-08-16 2 views
1

이것은 아마도 기본적인 질문 일 수 있지만 문제를 해결할 수있는 좋은 해결책을 찾지 못했습니다.두 가지 유형으로 VBA에서 차트 만들기

VBA에서 프로그래밍 방식으로 차트를 만들려고합니다. 차트에는 xlColumnStacked 인 2 개의 시리즈와 xlColumnClustered 인 1 개의 시리즈가있는 3 개의 시리즈가 있어야합니다. 하나의 시리즈가 xlColumnClustered 유형이고 나머지 두 개가 스택되는 개념입니다. 이렇게하면 두 열을 나란히 비교할 수 있습니다.

이것이 가능합니까?

각 시리즈 유형을 변경해 보았지만 결과는 전체 차트 유형이 변경된 마지막 시리즈를 기반으로 변경됩니다. (예 : -> 마지막 시리즈가 xlStacked 인 경우 세 시리즈가 모두 스택 됨)

Excel 2007 및 내장 VBA 매크로 편집기를 사용하고 있습니다.

답변

0

UI를 통해 수동으로 수행 할 수 있습니까? 당신이 코드에서 논리적으로 UI에서하는 것과 똑같은 일을하고 있습니까? UI를 사용하여 유형을 변경할 특정 계열을 선택해야합니다. 전체 차트 유형을 설정하는 대신 코드에서이 작업을 수행하고 있습니까?

Excel 차트와 아무 들어, I에 유래의 명의 참여자에 John Peltier's site

+0

실제로 UI를 통해이 작업을 얻을 수 없습니다. UI로 가정하면 Excel을 사용하는 것입니다. 3 계열 차트가있는 경우 단일 계열을 선택하고 유형을 변경하면이 경우 전체 차트에 대해 변경됩니다. (나는 3 개의 스택을 모두 가지고 있으며 시리즈 중 하나가 별도의 열에 있어야하므로 해당 시리즈를 클러스터 된 열로 만들었으므로 이제는 세 시리즈가 모두 클러스터형 열이됩니다.) 편집 : VBA 코드에서이 작업을 수행하고 있습니다. 데이터의 역 동성 때문에 – user875230

+0

사이트를 보면 Stacked Cluster 차트는 내가 원했던 것과 아주 비슷합니다. 나는 아무것도 사기 위해 준비하지 않고있다. 그러나 이것은 나에게 빠른 수정이 아니라고 나에게 이야기한다. 감사! – user875230

0

감사를 추천 할 것입니다. 나는 다른 부분 (해답)을 찾아서 함께 뒀다. 나에게는 2 시리즈가 있었고 다른 타입으로 같은 차트를 넣으려고했다.

Set Chrt = ws.Shapes.AddChart.Chart 
    Set s1 = Chrt.SeriesCollection.NewSeries 
    Set s2 = Chrt.SeriesCollection.NewSeries 
    With Chrt 
     .'this part chart part' 
    End With 
    With s1 
     .ChartType = xlColumnClustered 
     .Values = ActiveSheet.Range("c3:c24") 
     .XValues = ActiveSheet.Range("b3:b24") 
     .HasDataLabels = True 
     .AxisGroup = xlPrimary 
    End With 
    With s2 
     .ChartType = xlLineStacked 
     .AxisGroup = xlSecondary 
     .Values = ActiveSheet.Range("d3:d24") 
     .XValues = ActiveSheet.Range("b3:b24") 
     .HasDataLabels = True 
    End With 

이것은 내 해결책이며 효과가 있습니다. 추신 사용하여 메신저 2007