表計算ドキュメント内のグラフの使用

From Apache OpenOffice Wiki
Jump to: navigation, search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
doc OOo
Book.png


表計算ドキュメント内のグラフでは、表計算ドキュメント内で割り当てられたセル範囲からデータを表示できます。 表計算ドキュメント内でデータに加えられた変更は、割り当てられたグラフにも反映されます。 次のサンプルコードは、表計算ドキュメント内のセル範囲に割り当てられたグラフの作成方法の例です。

Dim Doc As Object
Dim Charts As Object
Dim Chart as Object
Dim Rect As New com.sun.star.awt.Rectangle
Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress

Doc = StarDesktop.CurrentComponent
Charts = Doc.Sheets(0).Charts

Rect.X = 8000
Rect.Y = 1000
Rect.Width = 10000
Rect.Height = 7000
RangeAddress(0).Sheet = 0
RangeAddress(0).StartColumn = 0 
RangeAddress(0).StartRow = 0
RangeAddress(0).EndColumn = 2
RangeAddress(0).EndRow = 12

Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True)

上記のサンプルコードは一見するとかなり複雑に感じられますが、主要な処理は 3 行に集約されます。その 1 つ目は、現在の表計算ドキュメントを参照するために、Doc というドキュメント変数を用意する行です (Doc= StarDesktop.CurrentComponent)。2 つ目は、表計算ドキュメントの最初の表 (スプレッドシート) 上を対象に、存在するすべてのグラフを登録したリストを作成する行です (Charts= Doc.Sheets(0).Charts)。そして、最後の行に addNewByName メソッドを使用して、このリストに新しいグラフを追加します。新規に作成したグラフは、この処理を経て初めて画面上に表示されます。変数 RangeAddress により、割り当てられたセル範囲が指定され、グラフ内にそのデータが表示されます。変数 Rect により、表計算ドキュメントの最初のシート内のグラフの位置とサイズが指定されます。

上記のサンプルコードのままでは、作成されるグラフは常に縦棒グラフとなります。作成したグラフの種類を棒グラフ以外に変更するには、次のようなコードを追加して、表示するグラフの種類を明示的に指定する必要があります。

Chart = Charts.getByName("MyChart").embeddedObject
Chart.Diagram = Chart.createInstance("com.sun.star.chart.LineDiagram")

上記のコードの最初の行は、対象とするグラフオブジェクトを特定するための処理です。その次の行は、作成済みのグラフの種類を変更する処理で、この場合は折れ線グラフを指定しています。

Documentation note.png Microsoft Excel の場合、ドキュメント中のワークシート (スプレッドシート) として挿入したグラフと、ワークシート上に埋め込んだグラフとは、明確に区別されています。そのため、これらのグラフへのアクセスに関しても、異なる 2 通りの方法が用意されています。これに対して Apache OpenOffice Basic の場合、Apache OpenOffice Calc のグラフは、常に表 (スプレッドシート) への埋め込みグラフとして作成されます。このためグラフへのアクセスも、常に Sheet オブジェクトの Charts リストを用いて行います。


Content on this page is licensed under the Public Documentation License (PDL).


Personal tools