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
Cell.Numberformat - wie korrekt einsetzen (Makro)
Moderator: Moderatoren
Nein habe ich nicht. Ich habe mal sowas hier im Forum diskutiert, da ging es aber um eines der vordefinierten Formate - ich habe die Formatierung mit dem Makrorekorder aufgezeichnet und mir dann die Zahl notiert die dem Format zugeordnet war. Da es aber bei Dir um ein benutzerdefiniertes Format geht kann es dafür wohl keine kodierte Zahl geben, denke ich. Ein anderer Weg ist mir bisher nicht bekannt.Hast Du eine Idee, wie ich das anstellen muss?
Stephan