* 色 [#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 番目が緑色になります。それ以降の系列は繰り返します。手動、マクロを問わず、いくつでも好きな色を自動的に設定できます。 |