Top > OOoBasic > Calc > chart2 > ColorScheme

Edit

チャートのデフォルト色。

ツール - オプション - チャート - 基本色で設定した系列の色を取得します。

oDiagram = oChart.getFirstDiagram()
oColorScheme = oDiagram.getDefaultColorScheme()
nColor = oColorScheme.getColorByIndex(0)

getColorByIndex メソッドで系列 1-12 (0-11) までのデフォルトの色を long 型の値として取得できます。

デフォルトの色 Edit

デフォルト系列の色は /org.openoffice.Office.Chart/DefaultColor/Series に定義されています。この値は long-list 型なのですが、色数は 12 にしておくこと、となっているので変更しない方がよさそうです。

デフォルトの色を提供 Edit

コンフィグレーションでは色は変更できても数は変更しない方がよさそうです。その代わりに次のようにしてデフォルトの色を提供できます。

Sub ChangeSeriesColor
 oSheets = ThisComponent.Sheets
 oObj_1 = oSheets.getByIndex(0)
 oCharts = oObj_1.getCharts()
 
 oObj_2 = oCharts.getByIndex(0)
 oEmbeddedObject = oObj_2.getEmbeddedObject()
 
 oFirstDiagram = oEmbeddedObject.getFirstDiagram()
 
 oColorSchema = CreateUnoListener("XColorScheme_", "com.sun.star.chart2.XColorScheme")
 oFirstDiagram.setDefaultColorScheme(oColorSchema)
 
End Sub


Function XColorScheme_getColorByIndex(index As Integer) As Long
 n = index mod 15
 a = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, RGB(255, 0, 0), 0, 0, 0, 0, RGB(0, 255, 0))
 XColorScheme_getColorByIndex = a(n)
End Function

色は少し極端にしてありますが、系列の 10 番目が赤、15 番目が緑色になります。それ以降の系列は繰り返します。手動、マクロを問わず、いくつでも好きな色を自動的に設定できます。


Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes