セルの位置とサイズ 
セルの位置を利用したり、セルの幅や高さを変更する方法です。
サイズ 
セルのサイズを変更するには列オブジェクトや行オブジェクトを使用します。セルに対して Columns または Rows プロパティー,getColumns または getRows メソッドを使用してそれぞれのオブジェクトを取得します。
Sub cell_size_1
Dim oSheet As Object, oCellRange As Object
Dim oColumns As OBject, oRows As Object
oSheet = ThisComponent.Sheets( 0 )
oCellRange = oSheet.getCellRangeByPosition( 1, 1, 3, 4 ) ' B2:D5
oColumns = oCellRange.getColumns()
oRows = oCellRange.getRows()
End Sub
上のコードなどを実行して情報を得てください。サイズを変更する際にはしたのコードのようにします。
Sub cell_size_2
Dim oSheet As Object, oCellRange As Object
Dim oColumns As OBject, oRows As Object
oSheet = ThisComponent.Sheets( 0 )
oCellRange = oSheet.getCellRangeByPosition( 1, 1, 3, 4 ) ' B2:D5
oColumns = oCellRange.getColumns()
oRows = oCellRange.getRows()
oColumns.Width = 2500
oRows.Height = 1000
End Sub
上のコードでは列の幅を 25 mm に,行の高さを 10 mm に設定しています。この場合,ともに 1/100 mm 単位で長さを指定します。
最適サイズ 
セルの高さや幅を内容に合わせて最適なサイズにする方法もあります。列オブジェクトと列オブジェクトの OptimalWidth と OptimalHeight プロパティーを使用します。
Sub cell_optimalsize_1
Dim oSheet As Object, oCellRange As Object
Dim oColumns As OBject, oRows As Object
oSheet = ThisComponent.Sheets( 0 )
oCellRange = oSheet.getCellRangeByPosition( 1, 1, 3, 4 ) ' B2:D5
oColumns = oCellRange.getColumns()
oRows = oCellRange.getRows()
oColumns.OptimalWidth = True
oRows.OptimalHeight = True
End Sub
ともに使用は簡単でそれぞれのプロパティーに "True" を設定するだけです。
セルのサイズ 
セルのサイズはセルオブジェクトからも取得できます。この方法ではサイズを変更することは出来ません。
aSize = oCell.Size
msgbox aSize.Width & ", " & aSize.Height
セルの位置 
特定のセルの位置を知るには Position プロパティを参照します。
aPos = oCell.Position
msgbox aPos.X & ", " & aPos.Y
位置は変更できません。
セルの微妙な位置とサイズ 
セルの位置とサイズを上記の全ての方法で調べると少しずつ位置やサイズが合わないことが分かります。
たとえば、oCell.Size.Width として取得したセルの幅は oCell.getColumns().Width よりも短くなっています。
セル D4 と右隣のセル D5 で各値を調べてみました。(セル D4 の位置 X + セル D4 の幅) = (セル D5 の位置 X) になるかと思いきや…。
'oCell : D4
oCell.Size.Width ' : 2259
oCell.getColumns().Width ' : 2267
oCell.Position.X ' : 6774
'oCell2 : D5
oCell.Position.X ' : 9032
2259 + 6774 = 9033
2267 + 6774 = 9041
どちらの合計値も一致しません。これはセルの枠線に幅があるのか!? (さらにセル同士の間隔も)
ということで、ピタッとセルに合わせてなにかを配置させたいという場合には考慮してみてください。