Difference between revisions of "ES/Desarrollo/Macros"
From Apache OpenOffice Wiki
< ES
Line 4: | Line 4: | ||
== Algunos ejemplos sencillos == | == Algunos ejemplos sencillos == | ||
+ | |||
+ | The following macro copies the contents of a given sheet into a newly created of a second document. | ||
+ | |||
+ | 'Author: Stephan Wunderlich [stephan.wunderlich@sun.com] | ||
+ | Sub CopySpreadsheet | ||
+ | firstDoc = ThisComponent | ||
+ | selectSheetByName(firstDoc, "Sheet2") | ||
+ | dispatchURL(firstDoc,".uno:SelectAll") | ||
+ | dispatchURL(firstDoc,".uno:Copy") | ||
+ | secondDoc = StarDesktop.loadComponentFromUrl("private:factory/scalc","_blank",0,dimArray()) | ||
+ | secondDoc.getSheets().insertNewByName("inserted",0) | ||
+ | selectSheetByName(secondDoc, "inserted") | ||
+ | dispatchURL(secondDoc,".uno:Paste") | ||
+ | End Sub | ||
+ | |||
+ | Sub selectSheetByName(document, sheetName) | ||
+ | document.getCurrentController.select(document.getSheets().getByName(sheetName)) | ||
+ | End Sub | ||
+ | |||
+ | Sub dispatchURL(document, aURL) | ||
+ | Dim noProps() | ||
+ | Dim URL As New com.sun.star.util.URL | ||
+ | |||
+ | frame = document.getCurrentController().getFrame() | ||
+ | URL.Complete = aURL | ||
+ | transf = createUnoService("com.sun.star.util.URLTransformer") | ||
+ | transf.parseStrict(URL) | ||
+ | |||
+ | disp = frame.queryDispatch(URL, "", com.sun.star.frame.FrameSearchFlag.SELF _ | ||
+ | OR com.sun.star.frame.FrameSearchFlag.CHILDREN) | ||
+ | disp.dispatch(URL, noProps()) | ||
+ | End Sub |
Revision as of 21:54, 23 December 2007
-- Programación en Macros --
Algunos ejemplos sencillos
The following macro copies the contents of a given sheet into a newly created of a second document.
'Author: Stephan Wunderlich [stephan.wunderlich@sun.com] Sub CopySpreadsheet
firstDoc = ThisComponent selectSheetByName(firstDoc, "Sheet2") dispatchURL(firstDoc,".uno:SelectAll") dispatchURL(firstDoc,".uno:Copy") secondDoc = StarDesktop.loadComponentFromUrl("private:factory/scalc","_blank",0,dimArray()) secondDoc.getSheets().insertNewByName("inserted",0) selectSheetByName(secondDoc, "inserted") dispatchURL(secondDoc,".uno:Paste")
End Sub
Sub selectSheetByName(document, sheetName)
document.getCurrentController.select(document.getSheets().getByName(sheetName))
End Sub
Sub dispatchURL(document, aURL)
Dim noProps() Dim URL As New com.sun.star.util.URL
frame = document.getCurrentController().getFrame() URL.Complete = aURL transf = createUnoService("com.sun.star.util.URLTransformer") transf.parseStrict(URL)
disp = frame.queryDispatch(URL, "", com.sun.star.frame.FrameSearchFlag.SELF _ OR com.sun.star.frame.FrameSearchFlag.CHILDREN) disp.dispatch(URL, noProps())
End Sub