LibreOfficeで動作する、それぞれStar BasicスタイルとVBAスタイルで作成された、Calcのセルに値を入力するマクロを紹介します。
セルの位置を指定するには、Star Basicスタイルでは、getCellByPositionを使用し、VBAスタイルでは、Cellsプロパティを使用します。
Star Basic Style
REM ***** BASIC *****
Option Explicit
Sub EnterAValueInCellA1
' セルA1に値を入力する
Dim mySheet As Object
mySheet = ThisComponent.CurrentController.ActiveSheet
mySheet.getCellByPosition(0,0).String = "Test_StarBasic"
End Sub
Option Explicitは、変数の宣言を矯正するコンパイラ・オプションです。
ThisComponent.CurrentController.ActiveSheetは、アクティブシート、現在使用しているシートを示しています。
getCellByPosition(0,0)は、セルの位置を示しています。
Star BasicのgetCellByPositionが、0始まりで、(x座標,y座標)と指定するのに対して、VBAのCellsでは、1始まりで、(y座標,x座標)と指定します。
mySheet.getCellByPosition(0,0)で、現在開いているシートの、右上のセルを示します。
Vba Style
REM ***** BASIC *****
Option Compatible
Option VBASupport 1
Option Explicit
Sub EnterAValueInCellA2
Cells(2,1).Value = "Test_Vba_Style"
End Sub
Option Compatibleは、LIbreOffice Basicに、VBのふりをさせるコンパイラオプションです。
Option VBASupport 1は、LIbreOffice Basicに、VBAのふりをさせるコンパイラオプションです。
Option Explicitは、変数の宣言を矯正するコンパイラ・オプションです。
Cells(2,1)は、セルの位置を示しています。Star BasicのgetCellByPositionが、0始まりで、(x座標,y座標)と指定するのに対して、VBAのCellsでは、1始まりで、(y座標,x座標)と指定します。