Libreoffice basicでグラフの軸を変更する方法

お世話になります。

libreoffice basicでグラフのスケールを変更するための関数を作りたいのですがうまく動きません。検索やcopilotへの質問でも解決には至りませんでした。

Dim ActiveSheet As Object
    thiscomponent.CurrentController.setActiveSheet(thiscomponent.sheets.getbyname("シート名"))
    ActiveSheet = ThisComponent.CurrentController.ActiveSheet
    
    oCharts = ActiveSheet.getCharts()
    oChart = oCharts.getByIndex(0)
        ' チャートのダイアグラムを取得
    oDiagram = oChart.getDiagram()
    
    ' 横軸と縦軸のプロパティを変更
        oDiagram.getXAxis().Min = 温度範囲下
        oDiagram.getXAxis().Max = 温度範囲上
        oDiagram.getXAxis().MajorInterval = 20
        oDiagram.getXAxis().MinorInterval = 10
        oDiagram.getYAxis().Min = レンジX
        oDiagram.getYAxis().Max = レンジY
        
         oChart.setDiagram(oDiagram)

最終的にこのようなコードを作ったのですが

BASICランタイムエラー.
‘423’
次のプロパティまたはメソッドが見つかりません: getDiagram。

というエラーが出ます。解決方法はあるでしょうか。よろしくお願いいたします

oDiagram = oChart.getDiagram()


oEmbeddedObject = oChart.getEmbeddedObject() ’ Get Object in selected frame
oDiagram = oEmbeddedObject.getDiagram() ’ Get diagram from it
に変えて見られては?

とは回答するものの、実際に作成するときはどうやって調べられてるのですか?
私はここでgetDiagramを検索していたら上記コードにたまたま当たり
テストしたら動いただけの話なんです。
何を調べたらこういうコードを見付けられるのかを
教えてください。

2 Likes

オブジェクトを、ステップ実行中に、オブザーバにオブジェクトを放り込むと、プロパティは参照することができます。

oChart

に、入っているものを観察するのもオススメです。

ええ、そのプロパティは判るのですが、
問題はメソッドの方でその一覧の見方が判れば
随分と発展性が変わると思っています。

ご協力ありがとうございました!
提供いただいた

oEmbeddedObject = oChart.getEmbeddedObject() ’ Get Object in selected frame
oDiagram = oEmbeddedObject.getDiagram() ’ Get diagram from it

というコードに置き換えると無事動きました!

検索の方法ですが検索エンジンで「libreoffice グラフ レンジ変更」など目的を検索語に検索しています。copilotへの質問に関しても同様です。そのためエラーが特定できなかった場合つんでいました。
エラー箇所コードを検索することも有りますがask libreでは検索していませんでした

2 Likes