Top > OOoBasic > Calc > chart2 > Title

タイトル・サブタイトル Edit

タイトルとサブタイトル。

タイトル Edit

タイトルはチャートオブジェクトから取得します。

旧式の方法ではチャートオブジェクトの com.sun.star.chart. インターフェースの getTitle メソッドを使用してチャートタイトルオブジェクト .chart.ChartTitle を取得します。

新式?の方法ではチャートオブジェクトの com.sun.star.chart2.XTitled インターフェースの getTitleObject メソッドでタイトルオブジェクト .chart2.Title を取得します。

サブタイトル Edit

旧式の方法ではサブタイトルはチャートオブジェクトから getSubTitle メソッドを使用して取得します。

新式?の方法ではサブタイトルはダイアグラムの .chart2.XTitled インターフェースの getTitleObject メソッドでタイトルオブジェクトを取得します。

タイトルオブジェクト Edit

タイトル、サブタイトル共に getTitleObject メソッドで返されるオブジェクトは同じです。タイトルが表示されていないときには返り値が Null になります。

Sub title_3
  oCharts = ThisComponent.getSheets().getByIndex(0).getCharts()
  oChart = oCharts.getByIndex(0).getEmbeddedObject()

  oTitleObj = oChart.getTitleObject()
End Sub

タイトルが設定されていない場合には次のようにして追加できます。

 oChart = oCharts.getByIndex(0).getEmbeddedObject()
 If NOT oChart.HasMainTitle Then
   oTitleObj = CreateUnoService("com.sun.star.chart2.Title")
   oStr1 = CreateUnoService("com.sun.star.chart2.FormattedString")
   oStr1.setString("New Titel")
   
   oTitleObj.setText(Array(oStr1))
   
   aRPos = CreateUnoStruct("com.sun.star.chart2.RelativePosition")
   With aRPos
     .Anchor = com.sun.star.drawing.Alignment.TOP_LEFT
     .Primary = 0.35
     .Secondary = 0.05
   End With
   oTitleObj.RelativePosition = aRPos
   
   oChart.setTitleObject(oTitleObj)
 End If

位置の調整が難しいので、

oChart.HasMainTitle = True

としてからタイトルを編集する、またはチャートドキュメントのページサイズとタイトルの図形描写オブジェクトのサイズから位置を計算します。また、チャートのダイアグラムとの位置を調整する必要もあります。

タイトルオブジェクトがサポートしているプロパティは次のものです。

プロパティ説明
ParaAdjust.style.ParagraphAdjust揃え
ParaBottomMarginlong下余白
ParaIsHyphenationboolean
ParaLastLineAdjustshort最終行の調整
ParaLeftMarginlong左余白
ParaRightMarginlong右余白
ParaTopMarginlong上余白
ReferencePageSize.awt.Size
RelativePosition.chart2.RelativePosition相対位置
StackCharactersboolean
TextRotationdouble回転表示

タイトルのテキスト Edit

タイトルに表示されているテキストは getText メソッドで取得できます。返り値は [].chart2.FormattedString です。この各オブジェクトは文字列およびプロパティを保持していますが、全体のプロパティを決めるのは最初のものです (不具合?)。

 oTitleObj = oChart.getTitleObject()
 oStrings = oTitleObj.getText()
 If UBound(oStrings) >= 0 Then
   msgbox oStrings(0).getString()
 End If

たとえば、以下の様にして新しく文字サイズなどの指定を分けて設定しても先に配列に入れた設定になります。文字列は全て表示されます。

 oTitleObj = oChart.getTitleObject()
 
 oStr1 = CreateUnoService("com.sun.star.chart2.FormattedString")
 oStr2 = CreateUnoService("com.sun.star.chart2.FormattedString")
 
 oStr1.setString("title")
 oStr2.setString(" 124")
 oStr1.CharHeight = 10
 oStr2.CharHeight = 20

 oTitleObj.setText(Array(oStr1, oStr2))

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