von Charly » Do, 23.10.2008 14:53
Hallo Ninja!
Auch für Calc gibt es Druckbereiche. Das Problem ist, eine Zeile hat 256 Spalten. Das heißt, wenn du nur eine Zeile angibst, würdest du eine Menge Papier drucken. Du musst auch Spalten angeben.
Ich habe mir mal vor einiger Zeit einen Codeschnipsel gemacht. Ich weiß nicht ob er noch funktioniert. Ich hatte manchmal Problem mit dem Druckbefehl, wenn das Makro schneller zu Ende war als der Ausdruck. Das sollte mit dem Befehl "wait" eigentlich nicht passieren. Aber dem war nicht so. Ich schreib dir mal den Code auf zum experimentieren:
Code: Alles auswählen
Sub BereichDrucken
dim Bereich
Dim Args1(0)
Dim Args2(1) as new com.sun.star.beans.PropertyValue
Dim Probs
Dim sDrucker as string
rem ----------------------------------------------------------------------
oDoc = ThisComponent
oTab = oDoc.sheets(0)
Probs = oDoc.getPrinter()
sDrucker = Probs(0).value
rem ----------------------------------------------------------------------
'Festlegen Bereich
Bereich = oTab.getCellRangeByPosition(0,4,1,9)
'Druckbereich setzen
args1(0) = Bereich.RangeAddress
oTab.setprintAreas(args1())
args2(0).name = "Name"
args2(0).value = "<" & sDrucker & ">"
args2(1).name = "Wait"
args2(1).value = true
oDoc.print(args2())
'Druckbereich wieder löschen
redim args1()
oTab.setprintAreas(args1())
end Sub
gruß
Charly
Hallo Ninja!
Auch für Calc gibt es Druckbereiche. Das Problem ist, eine Zeile hat 256 Spalten. Das heißt, wenn du nur eine Zeile angibst, würdest du eine Menge Papier drucken. Du musst auch Spalten angeben.
Ich habe mir mal vor einiger Zeit einen Codeschnipsel gemacht. Ich weiß nicht ob er noch funktioniert. Ich hatte manchmal Problem mit dem Druckbefehl, wenn das Makro schneller zu Ende war als der Ausdruck. Das sollte mit dem Befehl "wait" eigentlich nicht passieren. Aber dem war nicht so. Ich schreib dir mal den Code auf zum experimentieren:
[code]
Sub BereichDrucken
dim Bereich
Dim Args1(0)
Dim Args2(1) as new com.sun.star.beans.PropertyValue
Dim Probs
Dim sDrucker as string
rem ----------------------------------------------------------------------
oDoc = ThisComponent
oTab = oDoc.sheets(0)
Probs = oDoc.getPrinter()
sDrucker = Probs(0).value
rem ----------------------------------------------------------------------
'Festlegen Bereich
Bereich = oTab.getCellRangeByPosition(0,4,1,9)
'Druckbereich setzen
args1(0) = Bereich.RangeAddress
oTab.setprintAreas(args1())
args2(0).name = "Name"
args2(0).value = "<" & sDrucker & ">"
args2(1).name = "Wait"
args2(1).value = true
oDoc.print(args2())
'Druckbereich wieder löschen
redim args1()
oTab.setprintAreas(args1())
end Sub
[/code]
gruß
Charly