Chart2/GetPositionOfAChart
From Apache OpenOffice Wiki
< Chart2
Description: | Get the position of a chart within a spreadsheet. | Programming Language: | StarBasic | Author: | Ingrid Halama, 2010 |
Sub Main Dim oTableChart as Object Dim oPosition as Object Dim Message as String oTableChart = ThisComponent.Sheets(0).getCharts().getByIndex(0) oPosition = getPositionOfChart( oTableChart ) Message = "Chart position: x=" & oPosition.X & " y=" & oPosition.Y MsgBox Message End Sub function getPositionOfChart( oTableChart as object ) dim oShape as object oShape = getShapeForChartName( oTableChart.Name, oTableChart.EmbeddedObject.Parent ) getPositionOfChart = oShape.Position end function function getShapeForChartName( sChartName as string, oSpreadSheetDocument ) as object 'iterate over all shapes in a calc document dim oSheet as object dim oShape as object SheetCount=oSpreadSheetDocument.Sheets.getCount SheetNo=0 while( SheetNo<SheetCount ) oSheet=ThisComponent.Sheets(SheetNo) oDrawPage=oSheet.DrawPage ShapeCount=oDrawPage.getCount ShapeNo=0 while(ShapeNo<ShapeCount) oShape = oDrawPage.getByIndex(ShapeNo) if( oShape.getShapeType() = "com.sun.star.drawing.OLE2Shape" ) then if( oShape.PersistName = sChartName ) then getShapeForChartName = oShape exit function endif endif ShapeNo=ShapeNo+1 wend SheetNo=SheetNo+1 wend end function