Archiv des LibreOffice- und OpenOffice.org-Wiki

[ÜberSicht] [TitelIndex] [WortIndex] [SeiteFinden

(./) SO7 OOo1.1 (./) OOo3.x

1. Lückentext einfach und schnell erstellen

Das Makro wandelt einen beliebigen Text in einen Lückentext um und erstellt eine Liste mit den Lückenwörtern.

2. Nötige Vorarbeiten

2.1. Einfache Variante

Zunächst müssen 2 neue Zeichenvorlagen mit den Namen "Lückentext" und "Lückentextaus" erstellt werden. Öffne den Stylisten (F11) und dort die Zeichenvorlagen . Mittels Linksklick auf Standard und dann Rechtsklick->Neu legst du eine neue Zeichenvorlage an, der du auf dem Register: Verwalten den Namen "Lückentextaus" verleihst und mit OK speicherst. Dasselbe nun nochmals für "Lückentext", jedoch zusätzlich unter Register: Schrift auf Fett einstellen. Dadurch werden die gewählten Lückenwörter im Text sichtbar.

2.2. Nur mit Zeichenvorlagen arbeiten

Das Makro benützt die Zeichenvorlagen nur zur Erkennung der ausgewählten Wörter. Die dann nötigen Formatierungen werden "hart" ausgeführt. Wer dies nicht möchte kann lt. Anleitung unter LückenText auch alle Formatwünsche in die Vorlagen packen und im Makro die Zeilen zwischen Rem A------- und Rem E------ deaktiviren.

3. Benutzung

Im Text die gewünschten Wörter mit der Zeichenvorlage Lückentext belegen. Durch die Umwandlung in Fettschrift behält man den vollen Überblick. Nach Start des Makros werden die Worte unsichtbar. Die Lücken werden vergrößert, so daß für handschriftliches Ausfüllen genügend Raum bleibt. Die Lückenwörter werden in einer Liste gesammelt und an den Text angehängt. Damit das Ausfüllen nicht zu einfach wird, werden die Wörter vorher gründlich gemischt. Das Makro arbeitet als Flip/Flop. Einmal starten erzeugt die Lücken. Nochmals starten zeigt wieder den kompletten Text. Die erstellte Wörterliste wird allerdings nicht mehr entfernt!

4. Makro

Option Explicit
Sub Lueckentext
Dim oDoc as Object
Dim oCursor as Object
Dim Ende as BOOLEAN
Dim sWorte(30) as String
Dim Zaehler as Integer
Dim Weiche As Integer
Dim CH As Integer
Dim CK As Integer
'oDoc = StarDesktop.CurrentComponent (OOo 1.1)
oDoc = thisComponent ' OOo 3.x
oCursor = oDoc.Text.createtextCursor()
oCursor.gotoStart(false)
Do
        oCursor.gotoendofword(true)
        select Case oCursor.charstylename
                case "Lückentext"
                CH = oCursor.CharHeight
                CK = oCursor.CharKerning
                oCursor.charstylename = "Lückentextaus"
                rem A------------------------------------               
                oCursor.CharHeight =  CH + 3.0
                oCursor.CharKerning = CK + 300
                oCursor.CharUnderline = 3 
                oCursor.CharColor = &Hffffff
                oCursor.CharUnderlineColor = &H555555
                oCursor.CharUnderlineHasColor = 1
                rem E------------------------------------
                sWorte(Zaehler) = oCursor.string
                Zaehler=Zaehler+1
                Weiche = 1
                case "Lückentextaus"
                CH = oCursor.CharHeight
                oCursor.charstylename = "Lückentext"
                rem A------------------------------------
                oCursor.CharHeight =  CH - 3.0
                oCursor.CharUnderline = 0
                oCursor.CharKerning = CK
                oCursor.CharColor = &H000000
                rem E--------------------------------------
                Weiche = 0
        End Select
        Ende = oCursor.gotonextword(false)
Loop While Ende
If Weiche Then
        mischen(Zaehler,sWorte(),oCursor,oDoc)
End If
End Sub

Sub mischen(Zaehler,sWorte(),oCursor,oDoc)
Dim Zaehler1 as Integer
Dim iVar1 As Integer
Dim iVar2 As Integer
Dim sHilfsVar As String
Dim sWortliste As String
For Zaehler1= 0 to Zaehler*3 
        iVar1 = Int((Zaehler * Rnd) ) 
        iVar2 = Int((Zaehler * Rnd) )
        sHilfsVar = sWorte(iVar1)
        sWorte(iVar1) = sWorte (iVar2)
        sWorte(iVar2) = sHilfsVar
Next Zaehler1
sWortliste = "Wortliste: "
For Zaehler1 = 0 To Zaehler-2
        sWortliste = sWortliste & sWorte(Zaehler1) &"; "
Next
sWortliste = sWortliste & sWorte(Zaehler-1) 
oDoc.Text.insertControlCharacter(oCursor,com.sun.star.text.ControlCharacter.LINE_BREAK, false)
oDoc.Text.insertControlCharacter(oCursor,com.sun.star.text.ControlCharacter.LINE_BREAK, false)
oCursor.string = sWortliste
End Sub

Klaus Reiser 22.5.2005

5. Siehe auch


KategorieWriter KategorieMakro


LizenzBedingungen | AnbieterKennzeichnung | DatenschutzErklärung | Stand: 2013-04-28