Makro pro nastavení šířek buněk v tabulce

Vím, jak v tabulce nastavit šířky sloupců. Ale poté, co některou z buněk příkazem SplitRange rozdělím svisle na více buněk, pak - již logicky - běžný způsob nelze použít. Jak tedy nastavím šířky těchto nově vzniklých buněk? Jestli někdo víte, poraďte prosím. Díky.

Příkaz SplitRange jsem nenašel, ale zajisté máte na mysli nabídku Split Cells neboli Rozdělit buňky obsluhovanou skrz UNO příkaz .uno:SplitCell :slight_smile:.
Jestli to chcete manuálně tak stačí najet myší nahranu buňky a objeví se roztahovací kurzor.


Jestli to chcete makrem tak myslím, že nastavování šířek buněk někde mám, to bych musel dohledat, nebylo to myslím úplně snadné, ale teď fakt nevím.

Díky za reakci.
To je právě to - chci to provést makrem ve visual basicu. Znám tabulku oTable, název buňky sCellName a kurzor tabulky oTableCursor. Buňku pak úspěšně dělím následovně

oTableCursor = oTable.CreateCursorByCellName(sCellName)
oTableCursor.SplitRange(2, false)

Tím vzniknou 3 sub-buňky stejné šířky a tyto šířky bych já potřeboval změnit.

Nastavují se separátory (hrany) buněk pro každý řádek.
Makro vloží tabulku a zmenší buňku A1, pak rozdělí B3 na 3 buňky a levou v tom zmenší a pravou ještě víc.
Pozor, s tím zaplým UndoManagerem když se vyskytne chyba, tak občas Libre padá - třeba až když se zavře Writer. Chtěl jsem to nahlásit, ale ještě se mi nepodařilo to reprodukovat na nějakém jednodušším makru.

Sub InsertSimpleTableAtEnd
	dim oDoc as object, oTable as object, oVCur as object, oRow as object, oCell as object, oTableCursor as object, pSeps(), iWidth&, undoMgr as object, sUndo$
	oDoc=ThisComponent
	oVCur=oDoc.CurrentController.getViewCursor()
	sUndo="Vložit svojí tabulku"
	undoMgr=oDoc.UndoManager 'Undo/Redo manažer
	undoMgr.enterUndoContext(sUndo) 'aby byl jen jeden krok Zpět v Undo/Redo
	oTable=oDoc.createInstance("com.sun.star.text.TextTable")
	oTable.initialize(3, 4)
	oDoc.Text.insertTextContent(oVCur.End, oTable, false)
	with oTable
		.RelativeWidth=100
		.HoriOrient=0
		'.TableTemplateName=""
	end with
	rem změna šířky buňky v prvním řádku, jde o to nastavit separátory v oRow.TableColumnSeparators
	iWidth=oTable.TableColumnRelativeSum
	oRow=oTable.Rows.getByIndex(0)
	pSeps=oRow.TableColumnSeparators 'separátory (hrany) buněk
	pSeps(0).Position=500
	pSeps(2).Position=iWidth-500
	oRow.TableColumnSeparators=pSeps()
	
	rem rozdělelní buňky B3
	oTableCursor=oTable.CreateCursorByCellName("B3")
	oTableCursor.SplitRange(2, false)
	rem jiné šířky v B3
	oRow=oTable.Rows.getByIndex(2) 'třetí řádek
	dim pSeps2() 'fakt nevím proč to hází chybu když se dále použije předchozí proměnná pSeps()
	pSeps2=oRow.TableColumnSeparators() 'separátory
	pSeps2(1).Position=pSeps2(1).Position-300
	pSeps2(2).Position=pSeps2(2).Position+500
	oRow.TableColumnSeparators=pSeps2
	
	undoMgr.leaveUndoContext(sUndo)
End Sub

Thank you very very much. Jinak řečeno díky moc. Celej fór byl v tom, že mě prostě nenapadlo nadeklarovat tam to

podruhý. No, stane se. A ten Undo manager jsem tam taky neměl. Dobrá myšlenka. Takže dík moc za Váš čas.

Chyba s tím že nejde opakovaně použít jednu proměnnou nahlášena zde
https://bugs.documentfoundation.org/show_bug.cgi?id=157053