Zeichenvorlagen über die Symbolleiste zuweisen

Das Textverarbeitungsprogramm

Moderator: Moderatoren

Mojo Dodo
Beiträge: 4
Registriert: Di, 04.12.2012 11:49

Zeichenvorlagen über die Symbolleiste zuweisen

Beitrag von Mojo Dodo »

Hallo,

da ich häufiger einzelnen Worten eine Zeichenvorlage zuweisen muss, wäre es ganz angenehm dafür einen Eintrag in meiner Symbolleiste zu haben. Entsprechend dem Dropdown-Menü, das bereits standardmäßig für die Absatzvorlagen exisztiert.
Unter: Ansicht → Symbolleisten → Anpassen → Hinzufügen finde ich nur "Dokumente" → "Vorlage anwenden", was aber genau das Dropdown Menü ist, welches ja bereits existiert.

Was ich gerne hätte, ist ein Dropdown-Menü mit den vier wichtigsten (von mir aus auch mit allen) Zeichenvorlagen die ich verwende.
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: Zeichenvorlagen über die Symbolleiste zuweisen

Beitrag von pmoegenb »

Das andockbare Formatfenster (F11) reicht Dir dafür nicht ?
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Mojo Dodo
Beiträge: 4
Registriert: Di, 04.12.2012 11:49

Re: Zeichenvorlagen über die Symbolleiste zuweisen

Beitrag von Mojo Dodo »

pmoegenb hat geschrieben:Das andockbare Formatfenster (F11) reicht Dir dafür nicht ?
Nun, damit mache ich es momentan natürlich, aber es wäre eben komfortabler so ein Dropdownmenü zu haben wie es auch für die Absatzvorlagen üblich ist.
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: Zeichenvorlagen über die Symbolleiste zuweisen

Beitrag von pmoegenb »

Mojo Dodo hat geschrieben:Nun, damit mache ich es momentan natürlich, aber es wäre eben komfortabler so ein Dropdownmenü zu haben wie es auch für die Absatzvorlagen üblich ist.
Was soll daran komfortabler sein ? Eine Auswahlbox muss zuerst geöffnet werden, während das Formatfenster, je nach Anzahl der Formate, eine Vielzahl von Formaten zur sofortigen Übernahme anbietet.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Mojo Dodo
Beiträge: 4
Registriert: Di, 04.12.2012 11:49

Re: Zeichenvorlagen über die Symbolleiste zuweisen

Beitrag von Mojo Dodo »

pmoegenb hat geschrieben: Was soll daran komfortabler sein ?
Ich sehe keinen Sinn darin hier über die Sinnhaftigkeit meines Wunsches nach einem Dropdownmenü in der Symbolleiste für meine tägliche Arbeit zu diskutieren. Ich fände es eben wesentlich angenehmer und habe deshalb gefragt ob so etwas in OpenOffice möglich ist. Falls du nicht weißt wie man das hinbekommt (oder falls es gar überhaupt nicht möglich sein sollte) ist das ja kein Problem, aber du wirst mir nicht ausreden können, dass ich das eben gerne so hätte.
Es ist aber wohl schneller einer Zeile die Absatzvorlage "Überschrift 1" über das Dropdownmenü zuzuweisen, als über einen Klick oder F11 "Formatvorlagen" zu öffnen, dort "Überschrift 1" zu wählen und dann dieses Fenster, damit es nicht stört wieder zu schließen. Im Falle der Zeichenvorlage müsste ich ja dann außerdem erst noch zu dem entsprechenden Reiter navigieren.

Sei's drum. Fall noch jemand einen Vorschlag hat, wie sich das bewerkstelligen ließe, würde ich mich freuen.
manese
*****
Beiträge: 482
Registriert: Mo, 03.10.2005 17:20
Wohnort: Borgholzhausen
Kontaktdaten:

Re: Zeichenvorlagen über die Symbolleiste zuweisen

Beitrag von manese »

Hallo Mojo Dodo,
ich hatte das gleiche Problem wie du, zumal die automatische Anzeige der Formatvorlagen auf mich auch eher zufallsbedingt wirkt. Außerdem wollte ich gerne meine häufigsten Zeichen-, Absatz- und Formatvorlagen in einem Drop-Down-Menu haben, ohne vorher immer umschalten zu müssen.
Die von mir gefundene Lösung ist etwas aufwändig, aber ich setze sie jetzt ständig ein. Das System ist folgendes:
1. Makros erstellen
Ich habe für jede Vorlage ein Makro geschrieben. Dieses prüft zunächst, ob die gewünschte Formatvorlage bereits vorhanden ist. Wenn das nicht der Fall ist, bildet es eine entsprechende Formatvorlage. Dann weist es der ausgewählten Stelle das gewünschte Format zu.
Drei beispielhafte Makros findest du hier:

Code: Alles auswählen

sub A_Franzoesisch
''''''''''''''''''''''''''''''''''''''''''''''
'Den Namen für die Absatzformatvorlage zuweisen
	Dim sName as String
		sName = "Französisch"
'''''''''''''''''''''''''''''''''''''''''''''''	
'Die Sprache vorbereiten
	Dim vSprache as new com.sun.star.lang.Locale
		vSprache.Language = "fr"
		vSprache.Country = "FR"
''''''''''''''''''''''''''''''''''''''''''''''
'Den Viewcursor und einen Textcursor erstellen
	Dim oDoc as object
		oDoc = ThisComponent
	Dim oViewC as object
		oViewC = oDoc.getCurrentController().getViewCursor()
	Dim oTextC as object
	''''''''''''''''''''
	If isEmpty(oViewC.textTable) then
		oTextC = oDoc.text.createTextCursorByRange(oViewC)
	Else	
		Dim oZelle as object
			oZelle = oViewC.Cell
			oTextC = oZelle.getText().createTextCursorByRange(oViewC)	
	Endif
'''''''''''''''''''''''''''''''''''''''''''''''		
'Die Absatzvorlage holen oder erstellen
	Dim vStyle
	Dim vParaStyles
		vParaStyles = oDoc.StyleFamilies.getByName("ParagraphStyles")  
	'''''''''''''
	if vParaStyles.hasByName(sName) then
		vStyle=vParaStyles.getByName(sName)
	else			
		vStyle = oDoc.createInstance("com.sun.star.style.ParagraphStyle")
		''''''''''''''''''''''''''''''''''''''''''''''''		
		'Die Absatzeigenschaften definieren
			with vStyle
			.CharFontName = "Palatino Linotype"
			.CharHeight = 12
			.CharLocale = vSprache
			end with
		vParaStyles.insertByName(sName, vStyle)		
	end if
'''''''''''''''''''''''''''''''''''''''''''''''		
'Die Absatzvorlage zuweisen
	oTextC.ParaStyleName = sName
	Dim Ende
end sub

sub S_Querformat
''''''''''''''''''''''''''''''''''''''''''''''
'Den Namen für die Seitenformatvorlage zuweisen
	Dim sName as String
		sName = "Querformat"
''''''''''''''''''''''''''''''''''''''''''''''
'Den Viewcursor und einen Textcursor erstellen
	Dim oDoc as object
		oDoc = ThisComponent
	Dim oViewC as object
		oViewC = oDoc.getCurrentController().getViewCursor()
	Dim oTextC as object
	''''''''''''''''''''
	If isEmpty(oViewC.textTable) then
		oTextC = oDoc.text.createTextCursorByRange(oViewC)
	Else	
		Dim oZelle as object
			oZelle = oViewC.Cell
			oTextC = oZelle.getText().createTextCursorByRange(oViewC)	
	Endif
''''''''''''''''''''''''''''''''''''''''''''
'Seitenvorlage holen oder erstellen
	Dim vSeitenvorlage
	Dim vPageStyles
		vPageStyles = oDoc.StyleFamilies.getByname("PageStyles")	
	if vPageStyles.hasByName(sName) then
		vPageStyles.getByName(sName)
	else
			vSeitenvorlage = oDoc.createInstance("com.sun.star.style.PageStyle")
			''''''''''''''''''''''''''''''''''''''''''''
			with vSeitenvorlage
				.Width = 29700
				.Height = 21000
			end with
		vPageStyles.insertByName(sName, vSeitenvorlage)					
	end if
'''''''''''''''''''''''''''''''''''
'Den ersten Absatz ansprechen und dort die Seitenvorlage zuweisen
'(Die Eigenschaft PagStyleName ist schreibgeschützt)
	Dim oAbsatz as object
		oAbsatz = oDoc.text.createEnumeration.nextElement
		oAbsatz.PageDescname = sName
Dim Ende
end sub



sub Z_rot
''''''''''''''''''''''''''''''''''''''''''''''
'Den Namen für die Absatzformatvorlage zuweisen
	Dim sName as String
		sName = "rot"
'''''''''''''''''''''''''''''''''''''''''''''''	
'Die Sprache vorbereiten
	Dim vSprache as new com.sun.star.lang.Locale
		vSprache.Language = "de"
		vSprache.Country = "DE"
''''''''''''''''''''''''''''''''''''''''''''''
'Den Viewcursor und einen Textcursor erstellen
	Dim oDoc as object
		oDoc = ThisComponent
	Dim oViewC as object
		oViewC = oDoc.getCurrentController().getViewCursor()
'		oViewC = oDoc.getCurrentSelection()
	Dim oTextC as object
	''''''''''''''''''''
	If isEmpty(oViewC.textTable) then
		oTextC = oDoc.text.createTextCursorByRange(oViewC)
	Else	
		Dim oZelle as object
			oZelle = oViewC.Cell
			oTextC = oZelle.getText().createTextCursorByRange(oViewC)	
	Endif
'''''''''''''''''''''''''''''''''''''''''''''''		
'Die Zeichenvorlage  holen oder erstellen
	Dim vZeichenformat
	Dim vCharStyles
		vCharStyles = oDoc.StyleFamilies.getByName("CharacterStyles")  
	'''''''''''''
	if vCharStyles.hasByName(sName) then
		vZeichenformat=vCharStyles.getByName(sName)
	else			
		vZeichenformat = oDoc.createInstance("com.sun.star.style.CharacterStyle")
		''''''''''''''''''''''''''''''''''''''''''''''''		
		'Die Zeicheneigenschaften definieren
			with vZeichenformat
'			.CharFontName = "ZapfHumnst BT"
'			.CharBackColor = 16711680
			.CharLocale = vSprache
			.CharUnderline = 13
			.CharUnderlineHasColor = true
			.CharUnderlineColor = 16711680
			end with
		vCharStyles.insertByName(sName, vZeichenformat)		
	end if
'''''''''''''''''''''''''''''''''''''''''''''''		
'Die Zeichenvorlage zuweisen
	oTextC.CharStyleName = sName
	Dim Ende
end sub
2. Menüleiste erweitern
Über
  • Extras>Anpassen>Menüs: Neu
erstelle ich einen neuen Menüeintrag „Formatvorlagen“
3. Formatvorlagen einfügen
Über
  • Extras>Anpassen>Menüs: Menü: Formatvorlagen
    Hinzufügen
    Bereich: Makros: meine Makros
füge ich die entsprechenden Formatvorlagen-Makros als Üntermenüpunkte hinzu.

Wenn es Probleme gibt, melde dich ruhig.
Alles Gute
matthias
Antworten