Top > OOoBasic > Calc > chart2 > ColorScheme
* 色 [#kb13cc96]
チャートのデフォルト色。

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

 oDiagram = oChart.getFirstDiagram()
 oColorScheme = oDiagram.getDefaultColorScheme()

 nColor = oColorScheme.getColorByIndex(0)

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

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

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

 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