Seite 1 von 1
einzelne Zelle per Makro formatieren (Basic), OOo 2.0.2
Verfasst: Mi, 12.04.2006 13:15
von sascha11
hey!
ich möchte eine Zelle per Makro in Basic automatisiert formatieren, hierzu brauche ich die Befehle für
- Fett
- Unterstreichen
Danke!
Sascha
Verfasst: Mi, 12.04.2006 13:58
von pmoegenb
Hallo Sascha,
weshalb nicht über Formatvorlagen ? Einfach eine neue Formatvorlage von Standard ableiten und entsprechend anpassen. Bei geöffnetem Stylisten genügt dann ebenfalls ein einfacher Mausklick.
und dann einen Zellbereich wiederk komplett löschen
Verfasst: Mi, 12.04.2006 13:59
von sascha11
... und anschließend einen Zellbereich wieder komplett löschen, incl. aller Formatierungen
Danke!
Sascha
Re: und dann einen Zellbereich wiederk komplett löschen
Verfasst: Mi, 12.04.2006 16:09
von pmoegenb
sascha11 hat geschrieben:... und anschließend einen Zellbereich wieder komplett löschen, incl. aller Formatierungen
Hallo Sascha,
erklär mir mal bitte, was das mit
Zellvorlagen zu tun hat.
Verfasst: Do, 13.04.2006 08:33
von sascha11
nichts- es soll ja in ein Makro (Basic in Calc) eingebaut werden, da muss ich Zellen formatieren, die Position ist variabel, deshalb kann ich das nicht über eine Formatvorlage realisieren...
danke!
Sascha
leider komme ich mit Handbuch nicht weiter
Verfasst: Do, 13.04.2006 09:31
von sascha11
hey!
diesen Code habe ich im Handbuch gefunden und ihn angepasst, leider komme ich so nicht weiter, da ich von Fehlermeldung überhäuft werde, ich habe Doc sowie sheets definiert, oft fehlen auch Syntaxteile, wie nach
.shee oder die Eigenschaft bei Flags = com.sun.star.sheet.
Die Methode clearContents vereinfacht den Vorgang des Löschens von
Zellinhalten und Zellbereichen, indem sie einen bestimmten Inhaltstyp aus einem
Zellbereich löscht.
Das folgende Beispiel entfernt alle Zeichenfolgen sowie die direkten
Formatierungsinformationen aus dem Bereich B2:C3.
Dim Doc
As Object Dim Sheet
As Object Dim CellRange
As Object Dim Flags
As Long
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
CellRange = Sheet.getCellRangeByName('B2:C3')
Flags = com.sun.star.sheet.
CellFlags.STRING + _ com.sun.star.shee
CellFlags.HARDATTR
CellRange.clearContents(Flags)
Kann jemand helfen- außerdem benötige ich noch die Methoden, um Zellen zu unterstreichen sowie als fett zu markieren, im Programmierhandbuch finde ich nur die, um die Hintergrundfarbe zu definieren.
Danke!
Sascha
Verfasst: Do, 13.04.2006 10:18
von pmoegenb
sascha11 hat geschrieben:nichts- es soll ja in ein Makro (Basic in Calc) eingebaut werden, da muss ich Zellen formatieren, die Position ist variabel, deshalb kann ich das nicht über eine Formatvorlage realisieren...
Hallo Sascha,
Zellvorlagen werden für einzelne Zellen angewandt, deswegen heißen sie auch so. Als Unterlassungswert ist den Zellen die Zellvorlage
Standard zugeordnet. Du kannst z. B. aus dieser Zellvorlage eine neue Zellvorlage mit dem Namen
Fett ableiten und als Schriftschnitt
Fett hinterlegen.
Wenn Du nach dem Anlegen dieser Zellvorlage z. B. der Zelle B3 die Zellvorlage
Fett zuordnest wird die Schrift fett. Alle anderen Zellen bleiben unverändert, denn diesen ist nach wie vor die Zellvorlage
Standard zugeordnet.
dann brauche ich mal deine Hilfe
Verfasst: Do, 13.04.2006 10:38
von sascha11
hi Peter,
danke für deine Informationen- das ist genau das, was ich suche.
Nun habe ich noch ein paar Fragen, da ich so nicht weiterkomme:
Wo in Calc kann ich diese Zellvorlage "Fett und Unterstrichen" definieren?
also Dim Zellvorlage1 as Object??
Zellvorlage1 = Fett, Unterstrichen
Wie ordne ich Sie meiner Zelle in Basic dann zu?
also oT5.getCellRangeByName(A9)=Zellvorlage1 "Fett und Unterstrichen"
Kannst du den entsprechenden Code posten?
Ich kann ihn dann meinem Makro entspr. anpassen...
Ich habe leider noch immer kein Grundlagenbuch gekauft und muss daher auf die Onlinehilfe zurückgreifen.
Danke,
Sascha
Verfasst: Do, 13.04.2006 10:43
von sascha11
also die Zellvorlage habe ich mit F11 und neue Zellvorlage erstellt- nur wie ordne ich sie denn jetzt zu in meinem Makro?
Verfasst: Do, 13.04.2006 10:54
von pmoegenb
Hallo Sascha,
Du benötigst kein Makro hierfür. Zelle anklicken die anders formatiert werden soll und Seitenvorlage anklicken.
Verwende doch einfach die vorhandenen Bordmittel von OO.
Verfasst: Do, 13.04.2006 11:03
von sascha11
hi Peter,
das soll aber in mein Makro rein, weil ich weiß ja vorher nicht, an welcher Stelle jetzt unterstrichen werden soll und an welcher Stelle nicht und es ist einfach viel Text, der unterstrichen werden soll und daher ist das manuell einfach unpraktisch, deshalb muss ich die Zellvorlage ja irgendwie jetzt in meinem Makro der entsprechenden Zelle zuweisen können, z. Bsp.: oT5.getCellRangeByName(Bereichvariabel-> hier steht die Zelladresse drin)=Zellvorlage_FettundUnterstrichen
Danke,
Sascha
Verfasst: Do, 13.04.2006 11:45
von pmoegenb
Hallo Sascha,
OK. Hier ein Beispielcode für eine Zelle in Fett:
Code: Alles auswählen
function Fett()
oZell = thisComponent.getcurrentSelection()
if not oZell.supportsService("com.sun.star.sheet.SheetCell") then
msgbox "Bitte nur eine Zelle markieren (aktivieren)!", 48, "Fehler!"
exit function
end if
oZell.CharWeight = com.sun.star.awt.FontWeight.BOLD
end function
Verfasst: Do, 13.04.2006 11:59
von sascha11
danke erstmal für deinen Code- nur, ich habe noch nie mit Funktionen gearbeitet, wie rufe ich jetzt die Funktion auf, so geht es schonmal nicht:
oT5.getCellRangeByName(Bereichvariabel)=Fett()
oT5.getCellRangeByName(Bereichvariabel).Fett()
Danke!
Sascha
Verfasst: Do, 13.04.2006 14:04
von sascha11
hat sich erledigt- habe es jetzt über die SDK gelöst
Danke für deine Hilfe!!