OpenOffice Basicで円グラフを生成するマクロを作成していますが、グラフにさまざまな部分のパーセンテージを表示したいと思います。たとえば、次のリンクのような結果が必要です。
これが私の再現可能なコードです:
私のデータは次のとおりです。
https://i.stack.imgur.com/hwdDz.png
そしてマクロ:
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
どうもありがとうございました!OOo Basicのドキュメントは理解するのが非常に難しく、かなり貧弱だと思います。
https://forum.openoffice.org/en/forum/viewtopic.php?t=44377から始めて、私は最終的にあなたが必要とすることをするこのコードを思いつきました。
rowProps = oChart.Diagram.getDataRowProperties(0)
rowProps.DataCaption = com.sun.star.chart.ChartDataCaption.PERCENT
Dim oLocale As New com.sun.star.lang.Locale
rowProps.PercentageNumberFormat = ThisComponent.getNumberFormats().queryKey(_
"0%", oLocale, True)
あるなどの数値形式に関するドキュメントは、https://wiki.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/Managing_Number_Formatsにあります。Basicの多くの一般的なタスクはかなりよく文書化されていますが、実行していることはやや珍しいため、文書化はかなりあいまいです。
助けを求め続けてください-あなたの質問はよく書かれています。練習すれば、UNOAPIの操作が簡単になります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加