Libre Officce Basic
ほとんどネット検索でのBasicの勉強してます
Calc Ver.5.0.6.2で最大値を見つける方法
今回は関数を作成して戻り値として受け取って表示させてみます
最大値を求める範囲を指定して関数を呼び出し結果を表示するルーチン
MaxCall()
最大値を求める関数
MaxData(Range)
を作成します
Dim x As Variant
x = “B2:E6”
msgbox(MaxData(x))
End Sub
Dim oDoc As Object
Dim oSheet As Object
Dim oRange As Object
oDoc = ThisComponent
oSheet = oDoc.getCurrentController.getActiveSheet()
oRange = oSheet.getCellRangeByName(Range)
MaxData = oRange.computeFunction(com.sun.star.sheet.GeneralFunction.MAX)
End Function
まず Sub MaxCall()です
x = “B2:E6”
変数 x に調べるデータの範囲を設定します
今回は固定にしました。シート上でセルを反転させて選択することも可能ですがそっちは追々勉強していこうと思っています。
また、シート上の範囲に名前を設定しておけばその名前をダブルクォテーションで囲って設定することも可能です
x = “シート上の名前“ でOK
msgbox(MaxData(x))
関数 MaxData に範囲を引数として受け渡し結果を表示させます
そして MaxData(Range) です
最大値を調べる範囲の設定
oRange = oSheet.getCellRangeByName(Range)
セル範囲は引数Rangeとしてルーチンから受け取っています
MaxData = oRange.computeFunction(com.sun.star.sheet.GeneralFunction.MAX) (com.sun.star.sheet.GeneralFunction)メソッドを使用する
メソッドの事は詳しく知らないのですが最後に記入するパラメータにMaxを指定すると最大値を求めます。合計の時はSUM,最小値はMINです。
そして MaxDataに調べた最大値を格納しルーチンへ戻っていきます。
今まではMicrosoftOfficceを使用してきたがWinVistaのサーポート終了に伴いWindowsからLinuxに移行したためLibreOfficceの勉強中
いかにVBAが簡単だったかを痛感しています