dies ist meine erste Anfrage hier im Forum.
Ich hoffe, ich halte die Regeln ein...
Ich bin dabei, eine VBA-Anwendung in Starbasic um zu schreiben.
Ich möchte u.a. über einen selbst programmierten Button in die Druckvorschau (Seitenansicht) gelangen.
Die scheint in Starbasic nicht ohne weiteres möglich zu sein, da irgendwie die Makros "verloren" gehen.
Mit folgendem Code (aus OOoForum.org) klappt es:
Code: Alles auswählen
Sub Main
' Create new empty spreadsheet.
' Get document model, controller, and frame.
oDoc = StarDesktop.loadComponentFromURL( "private:factory/scalc", "_blank", 0, Array() )
oDocCtrl = oDoc.getCurrentController()
oDocFrame = oDocCtrl.getFrame()
' Put some stuff into the spreadsheet to preview
' so we have something to look at.
PutInSomeStuff( oDoc )
' Now preview the spreadsheet..
oDispatcher = createUnoService( "com.sun.star.frame.DispatchHelper" )
oDispatcher.executeDispatch( oDocFrame, ".uno:PrintPreview", "", 0, Array() )
End Sub
Sub PutInSomeStuff( oDoc )
' Get first sheet.
oSheet = oDoc.getSheets().getByIndex( 0 )
' Load it with something interesting to look at.
oSheet.getCellRangeByName( "A1" ).setString( "Month" )
oSheet.getCellRangeByName( "B1" ).setString( "Sales" )
oSheet.getCellRangeByName( "A2" ).setString( "Jan" )
oSheet.getCellRangeByName( "A3" ).setString( "Feb" )
oSheet.getCellRangeByName( "A4" ).setString( "Mar" )
oSheet.getCellRangeByName( "A5" ).setString( "Apr" )
oSheet.getCellRangeByName( "A6" ).setString( "May" )
oSheet.getCellRangeByName( "A7" ).setString( "Jun" )
oSheet.getCellRangeByName( "B2" ).setValue( 4509.23 )
oSheet.getCellRangeByName( "B3" ).setValue( 3705.45 )
oSheet.getCellRangeByName( "B4" ).setValue( 2941.20 )
oSheet.getCellRangeByName( "B5" ).setValue( 2132.11 )
oSheet.getCellRangeByName( "B6" ).setValue( 1445.34 )
oSheet.getCellRangeByName( "B7" ).setValue( 937.31 )
' Format some cells as currency.
' For a date formatting example, or other calc examples in general
' see this....
' http://www.oooforum.org/forum/viewtopic.php?t=4996
oFormats = oDoc.getNumberFormats()
oLocale = createUnoStruct( "com.sun.star.lang.Locale" )
nNumKey = oFormats.getStandardFormat( com.sun.star.util.NumberFormat.CURRENCY, oLocale )
oCell = oSheet.getCellRangeByName( "B2:B7" )
oCell.NumberFormat = nNumKey
End Sub
Wenn ich die Zeile:
Code: Alles auswählen
oDoc = StarDesktop.loadComponentFromURL( "private:factory/scalc", "_blank", 0, Array() )
Code: Alles auswählen
oDoc = ThisComponent
In VBA mache ich das übrigens mit .PrintPreview .
Würde mich freuen, wenn mir jemand weiter helfen könnte.
Ciao
Thomas