Wie generiere ich aus einer Checkliste eine Word-Datei mit zuvor ausgewählten Textbausteinen?

3 Antworten

Erstell Dir in Word eine Userform mit den gewünschten Checkboxen und einem Commandbutton.

Code für den Button (Einfacher Fall ohne große Logik: Die Texte zu den markierten Checkboxen werden einfach aneinander gehängt):

Private Sub CommandButton1_Click()
For i = 1 To 3 'Anpassen auf die Anzahl der Checkboxen
If UserForm1.Controls("Checkbox" & i).Value = True Then
Select Case i
Case 1: DeinText = DeinText & "Apfel ist Super "
Case 2: DeinText = DeinText & "Birne schmeckt. "
Case 3: DeinText = DeinText & "Melone ist eklig " 'cases erweitern case 4 etc
End Select
End If
Next
Selection.TypeText Text:=DeinText
End Sub


KlugerHans 
Beitragsersteller
 18.05.2016, 12:11

Hallo Ninombre, vielen Dank für deine schnelle Antwort. Im Grunde ist es
genau das, was ich gesucht habe. Jetzt noch ein paar Fragen: Wie kann
ich den Text, den ich einfügen möchte, noch formatieren (z. B. fett
gedruckt, eingerückt, etc.)?

0
Ninombre  18.05.2016, 17:40
@KlugerHans

Ich bin ehrlich gesagt mit VBA in Word nicht so fit. Ich nehme an, dass Du dann die Worte einzeln formatieren musst.

case 1: Selection.Font.Bold = True
Selection.TypeText Text:="Äpfel "
Selection.Font.Bold = False
Selection.TypeText Text:="schmecken gut"

Vielleicht geht es aber auch noch eleganter zu lösen, dafür fehlt mir allerdings der Background mit Word.

0

Hallo Ninombre, vielen Dank für deine schnelle Antwort. Im Grunde ist es genau das, was ich gesucht habe. Jetzt noch ein paar Fragen: Wie kann ich den Text, den ich einfügen möchte, noch formatieren (z. B. fett gedruckt, eingerückt, etc.)?


BerchGerch  17.05.2016, 23:07

Hallo,

welche Formatierungen sollen das denn genau sein? Da hat nämlich jede einen anderen Befehl.

Du könntest diese dann in dem Code oben zwischen Next und Selection.TypeText Text:=DeinText einfügen, damit die Formatierungen eingestellt werden, bevor der Text eingefügt wird. Der Text wird dann mit den eingestellten Formatierungen eingefügt, z. B.

(...)

Next

With Selection
.Font.Bold = True 'Text fett formatieren
.ParagraphFormat.LeftIndent = CentimetersToPoints(0.5) 'Setzt den linken Einzug auf 0,5 cm
.TypeText Text:=DeinText
End With

End Sub

Gruß, BerchGerch

0
KlugerHans 
Beitragsersteller
 18.05.2016, 12:26

Eigentlich möchte ich einige Teile im Satz fett gedruckt haben und andere eben nicht, einige Textstellen eben eingerückt, und andere nicht.

Könnte ich den Text, der Case-Abfrage übernommen wird denn auch vorher in Variablen schreiben und dort dann vorformatieren?

z.B. so:

Variable1 = "Apfel ist " & .Font.Bold = True & "super" & .Font.Bold = False & "lecker!"

...

Case 1: DeinText = DeinText & .ParagraphFormat.LeftIndent = CentimetersToPoints(0.5) & Variable1
Case 2: DeinText = DeinText & Variable2

Das Problem was ich denke ist, dass "Selection.TypeText Text:=DeinText" nur einen String ausgeben kann und evtl. Probleme mit den .Font.Bold, etc. bekommt oder irre ich da?

0

Warum benutzt du dazu nicht Excel?=)

Woher ich das weiß:Berufserfahrung – Eigenständiges lernen während und nach meiner Ausbildung