Top > OOobbs2 > 48

OOobbs2/48 Edit

  • サマリ: 結合したセルの列幅を取得したい
  • 環境: Calc
  • 状態: 解決
  • 投稿者: sato?
  • 投稿日: 2007-07-19 (木) 14:36:25

質問 Edit

結合(横)したセルの列幅を知りたいのですが、最初の列幅しか取得できません。2列を結合して列数を取得しても1列しか取得できませんでした。よろしくお願いします。

回答 Edit

  • セルカーソルを使わないといけないみたいです。

以下は選択範囲がセルで結合されているとき、トータルのセル幅を計算します。

collapseToMergedArea メソッドでセルカーソルを結合されたセルの範囲に広げます。メソッドを呼び出した前後でセルカーソルの RangeAddress プロパティを参照すれば範囲が確認できます。

Sub Main
Dim oDoc As Object
  oDoc = ThisComponent
  oSelection = oDoc.getCurrentController().Selection
  If oSelection.supportsService("com.sun.star.sheet.SheetCell") AND _
    oSelection.getIsMerged() Then
    oSheet = oSelection.Spreadsheet
    oCursor = oSheet.createCursorByRange(oSelection)
    oCursor.collapseToMergedArea()
    nWidth = GetColumnsWidth(oCursor.Columns)
  End If
End Sub

Function GetColumnsWidth( oColumns As Object )
Dim nTotal As Long
  For i = 0 To oColumns.getCount() -1
    nTotal = nTotal + oColumns.getByIndex(i).Width
  Next i
  GetColumnsWidth = nTotal
End Function
  • はにゃ?? 2007-07-19 (木) 15:28:17
  • はにゃ?さん ありがとうございます。実は、セル幅に文字を均等に割り付けるマクロに挑戦しています。 -- sato? 2007-07-20 (金) 10:27:27

感想,コメント,メモ Edit



Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes