Cell.Numberformat - wie korrekt einsetzen (Makro)
Verfasst: So, 22.08.2004 09:38
Hallo zusammen,
ich möchte in einer Zellvorlage neben verschiedenen Zeichenattributen auch das Zahlenformat entsprechend anpassen. Hierzu gibt es einen Schalter "Cell.NumberFormat" - nur bekomme ich diesen nicht korrekt ans laufen.
Mein Wunsch wäre folgender:
Dia_xxxx =Y wobei xxxx für eine laufende Nr.steht.
Wie stelle ich das in einem Makro korrekt an?
Hier mein bisheriges Makro als Beispiel.
Sub Zellvorlage_DIA_erstellen
DIM oDoc As Object
DIM oMyCellStyle As Object
DIM CText As Object
DIM CContent As Object
'>>> Abfrage, ob Seitenvorlage vorhanden
'>>> Ist die Vorlage vorhanden, wird diese Routine beendet
On Error Goto Fehler
Stardesktop.CurrentComponent.StyleFamilies.getByName("CellStyles").getByName("Dia")
Msgbox "Zellenvorlage vorhanden"
exit sub
'>>> Vorlage ist nicht vorhanden und wird angelegt
Fehler:
Msgbox "Zellenvorlage ist nicht vorhanden und wird angelegt"
oDoc = StarDesktop.CurrentComponent
'neue Zellformatvorlage erstellen und Formatierungen festlegen
oMyCellStyle = oDoc.createInstance( "com.sun.star.style.CellStyle" )
oDoc.getStyleFamilies().getByName( "CellStyles" ).insertByName( "Dia", oMyCellStyle )
'>>> Schriftart setzen - *ARIAL*
oMyCellStyle.CharFontName = "Comic Sans MS"
'>>> Schriftgröße setzen - *10*
oMyCellStyle.CharHeight = 10
'>>> Schriftfarbe setzen - Hellblau
oMyCellStyle.CharColor = 255
'>>> Schriftattribut setzen - *FETT*
oMyCellStyle.CharWeight = com.sun.star.awt.FontWeight.BOLD
'>>> Horizontale und vertikale Ausrichtung - *ZENTRIERT*
oMyCellStyle.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
oMyCellStyle.VertJustify = com.sun.star.table.CellVertJustify.CENTER
'>>> Zahlenformat, angepaßt auf Dia - *Dia_xxxx*
oMyCellStyle.NumberFormat = "Dia_"+"000#"
'>>> Zell-Linie setzen - *UNTEN, GRAU*
linie = CreateUnoStruct("com.sun.star.table.BorderLine")
With linie
.Color = RGB( 160, 160, 160 )
.InnerLineWidth = 0
'löschen mit .OuterLineWidth = 0 möglich
.OuterLineWidth = 15
.LineDistance = 0
End With
' oMyCellStyle.TopBorder = linie
oMyCellStyle.BottomBorder = linie
' oMyCellStyle.LeftBorder = linie
' oMyCellStyle.RightBorder = linie
end Sub
Sub Zellvorlage_verwenden
oDoc = StarDesktop.CurrentComponent
oBereich = oDoc.getCurrentSelection()
ThisComponent.CurrentController.Select(oBereich)
With ThisComponent.CurrentSelection
.CellStyle = "Dia"
End With
End sub
Hoffe das hilft euch weiter
Grüßle
Alex
ich möchte in einer Zellvorlage neben verschiedenen Zeichenattributen auch das Zahlenformat entsprechend anpassen. Hierzu gibt es einen Schalter "Cell.NumberFormat" - nur bekomme ich diesen nicht korrekt ans laufen.
Mein Wunsch wäre folgender:
Dia_xxxx =Y wobei xxxx für eine laufende Nr.steht.
Wie stelle ich das in einem Makro korrekt an?
Hier mein bisheriges Makro als Beispiel.
Sub Zellvorlage_DIA_erstellen
DIM oDoc As Object
DIM oMyCellStyle As Object
DIM CText As Object
DIM CContent As Object
'>>> Abfrage, ob Seitenvorlage vorhanden
'>>> Ist die Vorlage vorhanden, wird diese Routine beendet
On Error Goto Fehler
Stardesktop.CurrentComponent.StyleFamilies.getByName("CellStyles").getByName("Dia")
Msgbox "Zellenvorlage vorhanden"
exit sub
'>>> Vorlage ist nicht vorhanden und wird angelegt
Fehler:
Msgbox "Zellenvorlage ist nicht vorhanden und wird angelegt"
oDoc = StarDesktop.CurrentComponent
'neue Zellformatvorlage erstellen und Formatierungen festlegen
oMyCellStyle = oDoc.createInstance( "com.sun.star.style.CellStyle" )
oDoc.getStyleFamilies().getByName( "CellStyles" ).insertByName( "Dia", oMyCellStyle )
'>>> Schriftart setzen - *ARIAL*
oMyCellStyle.CharFontName = "Comic Sans MS"
'>>> Schriftgröße setzen - *10*
oMyCellStyle.CharHeight = 10
'>>> Schriftfarbe setzen - Hellblau
oMyCellStyle.CharColor = 255
'>>> Schriftattribut setzen - *FETT*
oMyCellStyle.CharWeight = com.sun.star.awt.FontWeight.BOLD
'>>> Horizontale und vertikale Ausrichtung - *ZENTRIERT*
oMyCellStyle.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
oMyCellStyle.VertJustify = com.sun.star.table.CellVertJustify.CENTER
'>>> Zahlenformat, angepaßt auf Dia - *Dia_xxxx*
oMyCellStyle.NumberFormat = "Dia_"+"000#"
'>>> Zell-Linie setzen - *UNTEN, GRAU*
linie = CreateUnoStruct("com.sun.star.table.BorderLine")
With linie
.Color = RGB( 160, 160, 160 )
.InnerLineWidth = 0
'löschen mit .OuterLineWidth = 0 möglich
.OuterLineWidth = 15
.LineDistance = 0
End With
' oMyCellStyle.TopBorder = linie
oMyCellStyle.BottomBorder = linie
' oMyCellStyle.LeftBorder = linie
' oMyCellStyle.RightBorder = linie
end Sub
Sub Zellvorlage_verwenden
oDoc = StarDesktop.CurrentComponent
oBereich = oDoc.getCurrentSelection()
ThisComponent.CurrentController.Select(oBereich)
With ThisComponent.CurrentSelection
.CellStyle = "Dia"
End With
End sub
Hoffe das hilft euch weiter
Grüßle
Alex