2016-11-28 39 views
-1

REM ***** BASIC *****LibreOfficeのマクロ平均計算

Sub hell_world 
    dim hell_world as object 
    hell_world = Range("G31:G42") 
    Range("H45") = WorksheetFunction.Average(hell_world) 
End Sub 

私はそれを持っていると私はエラーを取得:

BASIC runtime error. 
Sub-procedure or function procedure not defined. 

私は何をすべきか?おかげさまで

答えて

0

6.28. Use FunctionAccess to call Calc FunctionsAndrew Pitonyak's macro documentに記載されているようにXFunctionAccessを使用してください。

Sub CallAverage 
    Dim oSheet, oRange, oCell, nResult, oFuncAcc 
    oSheet = ThisComponent.CurrentController.ActiveSheet 
    oRange = oSheet.getCellRangeByName("G31:G42") 
    oCell = oSheet.getCellRangeByName("H45") 
    oFuncAcc = CreateUnoService("com.sun.star.sheet.FunctionAccess") 
    nResult = oFuncAcc.callFunction("Average", Array(oRange)) 
    oCell.setValue(nResult) 
End Sub 
+0

エラーが発生しました。 BASICランタイムエラー。 プロパティまたはメソッドが見つかりません:ActiveSheet。 –

+0

マクロはCalcのスプレッドシートから実行し、BasicウィンドウやWriterでは実行しないでください。もう一つのオプションは 'oSheet = ThisComponent.Sheets(0)'のように記述することです。しかし、これも 'ThisComponent'がスプレッドシートの場合にのみ機能します。 –