2017-09-20 1 views
1

OpenOffice Basic에서 파이 차트를 생성하는 매크로를 작성하고 있지만 파이의 다른 부분의 색을 변경하는 방법을 찾을 수 없습니다.OOo 기본 : PieChart, 그래프의 색을 변경하는 방법

우리는 예를 들어이 주제의 매크로 취할 수 있습니다 입니다 OpenOffice Calc macro to add pie chart

, 내 데이터는을 :
enter image description here

그리고 내 코드 :

Sub Macro1 

Dim oRange as Object 
Dim oRangeAddress(1) As New com.sun.star.table.CellRangeAddress 
Dim oRect As New com.sun.star.awt.Rectangle 
Dim cTitle as String 

oRange = thisComponent.getCurrentSelection.getRangeAddress 
oSheets = ThisComponent.getSheets() 
oSheet = oSheets.getByIndex(0) 
oCharts = oSheet.Charts 

oRect.Width = 10000 
oRect.Height = 10000 
oRect.X = 8000 
oRect.Y = 1000 

oRangeAddress(0).Sheet = oRange.Sheet 
oRangeAddress(0).StartColumn = 0 
oRangeAddress(0).StartRow = 0 
oRangeAddress(0).EndColumn = 1 
oRangeAddress(0).EndRow = 2 

cTitle = "Test Results" 
oCharts.addNewByName(cTitle,oRect,oRangeAddress(),TRUE, TRUE) 
oChart = oCharts.getByName(cTitle).embeddedObject 
oChart.Diagram = oChart.createInstance("com.sun.star.chart.PieDiagram") 
oChart.HasMainTitle = True 
oChart.Title.String = cTitle 

End Sub 

는 어떻게 얻을 수 있습니다 내 차트의 일부 녹색, 예를 들어 파란색 대신?

도움 주셔서 감사합니다.

+0

일부 코드를 표시하십시오. 그리고 "오픈 오피스 기본 파이 차트 다른 색상"에 대한 검색을 원할 수 있습니다. 그것이 도움이되지 않는다면, 우리는 그 기술이 전혀 효과가 없었던 이유를 알아야 할 것입니다. – jdv

+0

코드로 업데이트되었습니다. Google에서 긴 검색을 수행했지만 아무것도 찾지 못했습니다. 나는 그 방법의 이름을 모르기 때문에 시도 할 기술이 없습니다. – Xavier

+0

와우, 오픈 오피스 문서는 끔찍합니다. 다양한 객체에서 FillColor 속성을 연구하는 것으로 시작하십시오. – jdv

답변

0

다음은 하나의 해결책입니다. 나는이 방법에 대한 찾을 수

Sub Macro1 
    ... 
    oFirstDiagram = oChart.getFirstDiagram() 
    oColorScheme = CreateUnoListener("XColorScheme_", "com.sun.star.chart2.XColorScheme") 
    oFirstDiagram.setDefaultColorScheme(oColorScheme) 
End Sub 

Function XColorScheme_getColorByIndex(index As Integer) As Long 
    Dim result As Long 
    result = &H0000FF ' blue 
    If index = 0 Then 
     result = &H00FF00 ' green 
    ElseIf index = 1 Then 
     result = &HFFFF00 ' yellow 
    End If 
    XColorScheme_getColorByIndex = result 
End Function 

유일한 관련 문서는 API 문서입니다 : https://www.openoffice.org/api/docs/common/ref/com/sun/star/chart2/XDiagram.html.

또 다른 방법은 코멘트를 게시, 두 번째 방법에 대한 코드를 보려면 열 C를 사용하는 컬러 채우기 위해

Status  Count Color 
Unfinished 20  =COLOR(0,255,0) 
Finished 30  =COLOR(255,0,0) 

는 그 다음 범위를 설정 열에서 색상을 넣어 C.

입니다 나는 그것을 조사 할 것이다.

또 다른 방법은 https://forum.openoffice.org/en/forum/viewtopic.php?t=36001입니다.

oChart.Diagram.DataRowSource = com.sun.star.chart.ChartDataRowSource.COLUMNS 
oChart.FirstDiagram.CoordinateSystems(0).ChartTypes(0).DataSeries(0).Color = &H00FF00 

그러나이 마지막 접근 방식은 시도 할 때 색상이 변경되지 않았습니다.

+0

정말 고마워요! 첫 번째 접근 방식은 내가 원하는 것을 정확하게 수행합니다! – Xavier

관련 문제