von duffman521 » Mo, 08.11.2010 10:40
Hallo Forengemeinde,
ich habe heute morgen ein Makro zum Umranden von Formeln erstellt. Dieses Funktioniert halb, es wird nur ein Rahmen um den ausgewählten Bereich gesetzt. Eigentlich sollten alle Zellen komplett umrandet werden.
Ich habe nun dieses Makro aufgenommen:
Code: Alles auswählen
sub Umrandung
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$A$4:$B$10"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(7) as new com.sun.star.beans.PropertyValue
args3(0).Name = "BorderOuter.LeftBorder"
args3(0).Value = Array(0,0,2,0)
args3(1).Name = "BorderOuter.LeftDistance"
args3(1).Value = 0
args3(2).Name = "BorderOuter.RightBorder"
args3(2).Value = Array(0,0,2,0)
args3(3).Name = "BorderOuter.RightDistance"
args3(3).Value = 0
args3(4).Name = "BorderOuter.TopBorder"
args3(4).Value = Array(0,0,2,0)
args3(5).Name = "BorderOuter.TopDistance"
args3(5).Value = 0
args3(6).Name = "BorderOuter.BottomBorder"
args3(6).Value = Array(0,0,2,0)
args3(7).Name = "BorderOuter.BottomDistance"
args3(7).Value = 0
dispatcher.executeDispatch(document, ".uno:BorderOuter", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(4) as new com.sun.star.beans.PropertyValue
args4(0).Name = "BorderInner.Horizontal"
args4(0).Value = Array(0,0,2,0)
args4(1).Name = "BorderInner.Vertical"
args4(1).Value = Array(0,0,2,0)
args4(2).Name = "BorderInner.Flags"
args4(2).Value = 3
args4(3).Name = "BorderInner.ValidFlags"
args4(3).Value = 127
args4(4).Name = "BorderInner.DefaultDistance"
args4(4).Value = 0
dispatcher.executeDispatch(document, ".uno:BorderInner", "", 0, args4())
end sub
Leider habe ich keine Ahnung, wie dieser Code verändert werden muss, damit alle Zellen komplett umrandet werden. Ebenfalls ist mein Wissen überfordert um eine Schleife zugestallten um jede Zelle einzel zu markieren.
Über eine schnelle und hoffentlich unkomplizierte Hilfe wäre ich sehr erfreut.
Schon einmal vielen Dank für euer Hilfe.
Hallo Forengemeinde,
ich habe heute morgen ein Makro zum Umranden von Formeln erstellt. Dieses Funktioniert halb, es wird nur ein Rahmen um den ausgewählten Bereich gesetzt. Eigentlich sollten alle Zellen komplett umrandet werden.
Ich habe nun dieses Makro aufgenommen:
[code]sub Umrandung
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$A$4:$B$10"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(7) as new com.sun.star.beans.PropertyValue
args3(0).Name = "BorderOuter.LeftBorder"
args3(0).Value = Array(0,0,2,0)
args3(1).Name = "BorderOuter.LeftDistance"
args3(1).Value = 0
args3(2).Name = "BorderOuter.RightBorder"
args3(2).Value = Array(0,0,2,0)
args3(3).Name = "BorderOuter.RightDistance"
args3(3).Value = 0
args3(4).Name = "BorderOuter.TopBorder"
args3(4).Value = Array(0,0,2,0)
args3(5).Name = "BorderOuter.TopDistance"
args3(5).Value = 0
args3(6).Name = "BorderOuter.BottomBorder"
args3(6).Value = Array(0,0,2,0)
args3(7).Name = "BorderOuter.BottomDistance"
args3(7).Value = 0
dispatcher.executeDispatch(document, ".uno:BorderOuter", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(4) as new com.sun.star.beans.PropertyValue
args4(0).Name = "BorderInner.Horizontal"
args4(0).Value = Array(0,0,2,0)
args4(1).Name = "BorderInner.Vertical"
args4(1).Value = Array(0,0,2,0)
args4(2).Name = "BorderInner.Flags"
args4(2).Value = 3
args4(3).Name = "BorderInner.ValidFlags"
args4(3).Value = 127
args4(4).Name = "BorderInner.DefaultDistance"
args4(4).Value = 0
dispatcher.executeDispatch(document, ".uno:BorderInner", "", 0, args4())
end sub[/code]
Leider habe ich keine Ahnung, wie dieser Code verändert werden muss, damit alle Zellen komplett umrandet werden. Ebenfalls ist mein Wissen überfordert um eine Schleife zugestallten um jede Zelle einzel zu markieren.
Über eine schnelle und hoffentlich unkomplizierte Hilfe wäre ich sehr erfreut.
Schon einmal vielen Dank für euer Hilfe.