Sadly, I am not aware of a simple obvious way to do this.

I suppose that if you know that the table is simple, you can take some short-cuts. Here are some things that you do know...

You know the range name by calling oSel.RangeName

You can get the containing text table (because you cannot select cells from different tables at the same time).

ThisComponent.CurrentController.ViewCursor.TextTable

Especially if this is a simple table, you can parse B3:C4 to get what you need / want...

You can get the cell range itself (rather than the text table cursor)

oTextTable.getCellRangeByName(sRangeName)

You can then use the number of rows and columns to get what you want, but, again, this only works for a simple text table.

  ElseIf oSel.supportsService("com.sun.star.text.TextTableCursor") Then
    'Inspect oSel
    'Can you set what you want on the entire range at once?
' I think that you can, I do not think that you must enumerate the cells.
    ' The view cursor must be in a text table, so...
    Dim sRangeName$
    Dim oTextTable
    Dim o
    Dim oCell
    Dim oEmpty
    Dim iNumCols As Long
    Dim iNumRows As Long
    Dim iCol As Long
    Dim iRow As Long
    Dim s$

    sRangeName = oSel.RangeName
    oTextTable = ThisComponent.CurrentController.ViewCursor.TextTable
    o = oTextTable.getCellRangeByName(sRangeName)
    print sRangeName
    'Inspect oTextTable.getCellRangeByName(sRangeName).ColumnDescriptions
    iNumCols = UBound(o.getColumnDescriptions())
    iNumRows = UBound(o.GetRowDescriptions())
    For iCol = 0 To iNumCols
      For iRow = 0 To iNumRows
        oCell = o.getCellByPosition(iCol, iRow)
        s = s & oCell.CellName & CHR$(10)
      Next
    Next
    MsgBox s
  End If


On 07/09/2015 08:18 PM, Hung Mark wrote:
Hi Mathias,

I use mouse to select cells, as below.
http://i.imgur.com/2H6JFAb.png

After running macro. Paragraph property works but the others doesn't.
http://i.imgur.com/Tc7utrz.png

If I add messages to show the values, I can see that the values changed,
but it has no effect on formatting.
I wonder what makes the difference.
I've tested OpenOffice 4.1.1 and LibreOffice 4.4.4.3, both on Windows.

Back to my original question, how do I enumerate all the cells if I have a
cell range name like "B3:C4"?

2015-07-09 15:27 GMT+08:00 Mathias Röllig <mroellig.n...@gmx.net>:

Hi!

  When selecting multiple cells, WritingMode of the first cell changed. The
remaining cells didn't
In contrast,  ParaAdjust of all paragraphs in all the selected cells are
changed.

How do you "select"? With mouse or with API?

I use simply a text document with one table and select the cells with the
mouse cursor.
If I run my macro (with the missing line: oCurrentSelection =
ThisComponent.getCurrentSelection()) then I can see that the values
changed. And if I run it again for a piece of the previous selected cells I
see that the values was changed before for all the cells.

Regards, Mathias


---------------------------------------------------------------------
To unsubscribe, e-mail: api-unsubscr...@openoffice.apache.org
For additional commands, e-mail: api-h...@openoffice.apache.org




--
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
Info:  http://www.pitonyak.org/oo.php


---------------------------------------------------------------------
To unsubscribe, e-mail: api-unsubscr...@openoffice.apache.org
For additional commands, e-mail: api-h...@openoffice.apache.org

Reply via email to