Blog | Beitrag

LibreOffice-Makro: Aus Namen von Formularfeldern den Hilfstext generieren

Unlängst stand ich vor dem Problem, dass die Felder eines LibreOffice-Formulars Ihre Beschreibung als Namen trugen. Da ich aus diesen Formularen barrierefreie PDF-Formulare generieren wollte, war es notwendig die Namen der Formularfelder in die Hilfstexte zu kopieren. Hierzu habe ich folgendes Makro verwendet.


Sub CopyNameOrLableToHelptext
Dim oDoc as Variant
oDoc = ThisComponent
Dim TextFelderEnumration as Object
REM Es beet sich ein Formular im Dokument,(std. benamst mit Formular), einen Zeiger auf dieses Formular bekommen.
oformList = oDoc.drawpage.forms.getbyname("Formular")
REM Enumeration über alle Elemente des Formulars erhalten
TextFelderEnumration = oformList.createEnumeration
	REM über jedes Objekt des Formulars iterieren wenn noch Elemente verbleiben
	While TextFelderEnumration.hasMoreElements()
		REM nächstes Element erhalten
		currentTextField = TextFelderEnumration.nextElement()
		REM Helptext mit dem Wert von Name setzen, bei Radio Buttons label verwenden, da bei Gruppierungen gleicher Name 
		If currentTextField.DataFieldProperty = "State" Then
			currentTextField.helptext = currentTextField.Label
		Else
			currentTextField.helptext = currentTextField.name
		End If
		REM Change font to Arial for PDF/A compatibility
		currentTextField.FontName = "Arial"
	Wend
End Sub

Visual Basic

Diesen Beitrag teilen