OpenOffice.org/LibreOffice Calcのセルをマクロで結合する


マクロでCalcファイルを自動生成していると、セルを結合したいこともでてきます。
日本語で検索してもなかなか見つからなくて、キーワードを変えて見つけたのがこれ。
OOoのCalcでセルの結合/結合解除をキーボードショートカットで行う

でも結合するセルを選んでからってのはちょっと違うんだよね。
あぁ、「結合」は「merge」なのかってことで検索しなおして見つけたのがこれ。
[Solved] A macro to merge cells in Calc using OO.org Basic
読んでみたら、前に誰かが質問してて回答がついてる記事があるよってURL書いてあるね。
Calc Array Macro Cell Merge Issue

たどり着きました。
このPostのcodeを元に作ったのがこれ。
わかってしまえばどうってことはないですね(^^;

引数に4つの整数(左上の座標と右下の座標)を渡すサブルーチンになっていますが、”A3:C7″形式で渡したいときは、getCellRangeByName() を使ってRangeを指定するように変更してください。

'
' 指定された範囲(range)のセルを結合(merge)する
'
Sub Sb_MergeCells( oSht As Object,  iLeft As Long, iTop as Long, iRight As Long, iBottom As Long, Optional bTF As Boolean )
	Dim bTrueFalse As Boolean
	If isMissing(bTF) Then
		bTrueFalse = True
	Else
		bTrueFalse = bTF
	End If
	
	Dim oRange As Object
	oRange = oSht.getCellRangeByPosition( iLeft, iTop, iRight, iBottom)
	oRange.merge(bTrueFalse)

End Sub  'Sb_MergeCells