LibreOffice Calc Basic - セルを結合する方法

◆mergeメソッド

 LibreOffice Basicでセルを結合するには、Rangeオブジェクトのmergeメソッドを利用します。mergeメソッドの引数にTrueを指定すると結合され、Falseを指定すると結合が解除されます。

Sub MergeCell
' *************************
rem セルを結合する
' *************************
    Dim oSheets, oSheet
    Dim oRange

    oSheets = ThisComponent.Sheets
    oSheet = oSheets.getByName("Sheet1")

    oRange = oSheet.getCellRangeByName("B1:C1")
    oRange.merge(True)
End Sub

なお、マクロ記録機能で作成されたマクロは次のようになりました。これはトグルになっているので、もし結合されていれば結合が解除されます。また、シートの指定はしていませんのでアクティブシートに対して適用されます。

sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$1:$C$1"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ToggleMergeCells", "", 0, Array())

end sub
▼ページトップへ