LibreOffice Calc Basic - セルA1を画面の左上隅に配置する方法
◆Excel VBAの場合
Excel VBAの場合は非常に簡単です。
次のサンプルコードでは、Sheet1を選択しあと、セルA1を選択状態にします。
Sheets("Sheet1").Activate Application.Goto reference:=Range("A1"), Scroll:=True
◆LibreOffice Basicの場合
LibreOffice Basicの場合は、CurrentController の select メソッドを使用することで選択セル範囲を設定できます。
次のサンプルコードでは、Sheet1を選択しあと、セルA1を選択状態にします。
Dim oDoc As Object Dim oSheets As Object Dim Sheet As Object Dim oController As Object Dim CellRange As Object Dim Cell As Object oDoc =ThisComponent oController = oDoc.getCurrentController() oSheets = oDoc.getSheets() oController.setActiveSheet(oSheets.getByName("Sheet1")) oSelectedCellRange = _ oController.getActiveSheet().getCellRangeByName( "A1" ) oController.select( oSelectedCellRange )
このサンプルコードのoController.setActiveSheet(oSheets.getByName("Sheet1"))の行をコメントアウトすれば、アクティブシートのセルA1を画面の左上隅にすることができます。
注意
Excelでは、指定したセルが必ず左上隅になりますが、LibreOfficeの場合は、そうなりません。A1であれば左上隅になりますが、その他のセル、例えばA90などを指定すると、画面の中央になってしまいます。
マクロ記録では
マクロ記録機能で作成されたコードです。同じように機能します。
Sub gotoMenu dim document as object dim dispatcher as object document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") dim args1(0) as new com.sun.star.beans.PropertyValue args1(0).Name = "Nr" args1(0).Value = 1 dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1()) dim args2(0) as new com.sun.star.beans.PropertyValue args2(0).Name = "ToPoint" args2(0).Value = "$A$1" dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2()) End Sub
▼ページトップへ