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