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?