Top > OOoBasic > Calc > chart2 > Title
* タイトル・サブタイトル [#be91b940]
タイトルとサブタイトル。

#contents


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

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


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

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

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

** タイトルオブジェクト [#kce0f13e]
タイトル、サブタイトル共に 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
としてからタイトルを編集する、またはチャートドキュメントのページサイズとタイトルの図形描写オブジェクトのサイズから位置を計算します。また、チャートのダイアグラムとの位置を調整する必要もあります。

タイトルオブジェクトがサポートしているプロパティは次のものです。
- [[表面>../Properties#ve4daec7]]
- [[外枠>../Properties#k4c88284]]

|プロパティ|型|説明|h
|ParaAdjust|.style.ParagraphAdjust|揃え|
|ParaBottomMargin|long|下余白|
|ParaIsHyphenation|boolean||
|ParaLastLineAdjust|short|最終行の調整|
|ParaLeftMargin|long|左余白|
|ParaRightMargin|long|右余白|
|ParaTopMargin|long|上余白|
|ReferencePageSize|.awt.Size||
|RelativePosition|.chart2.RelativePosition|相対位置|
|StackCharacters|boolean||
|TextRotation|double|回転表示|
** タイトルのテキスト [#kc358bcb]
タイトルに表示されているテキストは 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