Re: E-mail Adresse in Master einfügen
Verfasst: Mo, 19.03.2012 17:26
Mit der Oberfläche lassen sich solche Textfelder -wie Du sicherlich gesehen hast- nicht einfügen.
Das folgende Makro (er-)setzt im Folienmaster "Standard" im Textfeld "MAIL" die unter den Benutzerdaten eingegebene E-Mail Adresse (als Zeichenkette; vorhandener Inhalt im Textfeld wird überschrieben).
Verbinde das Makro mit dem Ereignis "Dokument wurde erzeugt" der Vorlage.
So ähnlich kann es auch mit "Titel" funktionieren.
Welchen Du damit meinst (den der Präsentation, aus Datei>Eigenschaften oder aus den Benutzerdaten) weiss ich aber nicht.
Kommst Du damit weiter?
Das folgende Makro (er-)setzt im Folienmaster "Standard" im Textfeld "MAIL" die unter den Benutzerdaten eingegebene E-Mail Adresse (als Zeichenkette; vorhandener Inhalt im Textfeld wird überschrieben).
Verbinde das Makro mit dem Ereignis "Dokument wurde erzeugt" der Vorlage.
Code: Alles auswählen
REM ***** BASIC *****
CONST cMAKRONAME = "Impress: setzen E-Mail in Master"
CONST cMAKROVERSION = "2012-03-19"
CONST cIMPRESS = "com.sun.star.presentation.PresentationDocument"
' ------------------------------------------------------------------
SUB de58624
' IMPRESS MAKRO
'
' Setzen der Benutzer-E-Mail-Adresse
' aus Extras>Optionen...>OpenOffice.org>Benutzerdaten>E-Mail
' ------------------------------------------------------------------
' 2012-03-12
' Folienmaster STANDARD
' ein Textfeld "MAIL" muss vorhanden sein
IF NOT ThisComponent.supportsService( cIMPRESS ) THEN
MSGBOX "Kein IMPRESS-Dokument - Makro beendet", 16, _
cMAKRONAME & " " & cMAKROVERSION
STOP
END IF
oDok = ThisComponent
oMasters = oDok.getMasterPages()
FOR zM = 0 TO oMasters.Count - 1
oMaster = oMasters.getByIndex( zM )
IF oMaster.Name = "Standard" THEN
FOR zE = 0 TO oMaster.Count - 1
oElement = oMaster.getByIndex( zE )
IF oElement.Name = "MAIL" THEN
oCursor = oElement.createTextCursor()
oCursor.gotoEnd( TRUE )
oCursor.setString( fkt_EMAIL() )
END IF
NEXT zE
END IF
NEXT zM
END SUB
' ------------------------------------------------------------------
FUNCTION fkt_EMAIL
IF NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Tools" ) THEN
GlobalScope.BasicLibraries.loadLibrary( "Tools" )
END IF
oUserDataAccess = _
Tools.Misc.GetRegistryKeyContent( _
"org.openoffice.UserProfile/Data", TRUE )
fkt_EMAIL = oUserDataAccess.getByName( "mail" )
END FUNCTION
' ------------------------------------------------------------------
So ähnlich kann es auch mit "Titel" funktionieren.
Welchen Du damit meinst (den der Präsentation, aus Datei>Eigenschaften oder aus den Benutzerdaten) weiss ich aber nicht.
Kommst Du damit weiter?