VBA Programmierung in Word: In Tabelle Zeilen aus-/einblenden und mit Text füllen
Guten Tag! Ich habe in Word eine Tabelle mit zwei Checkboxen erstellt (siehe Bild 1), wenn man auf Ja klickt passiert soweit nichts, wenn man auf Nein klickt soll der Inhalt der darunter liegenden Zeile eigentlich ausgeblendet werden und darunter soll dann ein Text eingeblendet werden (Z.B: Hiermit erklären Sie sich einverstanden das Sie auf Datensicherung verzichten usw.).
Da ich mich zum ersten mal mit der VBA Programmierung in Word beschäftige, bin ich ziemlich ratlos was ich noch machen kann. Mithilfe von Google habe ich schon folgendes geschafft:
Private Sub OptNo_Click()
If OptNo = True Then
With ActiveDocument.Tables(1)
.Rows(2).Select: Selection.Delete
End With
End If
End Sub
Wie ihr sehen könnt, wird die Zeile geleert. Der Text sollte eigentlich nur ausgeblendet werden, damit man ihn bei Klick auf Ja wieder einblenden kann. Außerdem weiß ich nicht wie ich dann in die geleerte Zeile oder darunter einen Text einfügen kann.
Ich wäre euch für eure Hilfe sehr dankbar Mfg Chaosboy
![Bild 1 - (Computer, PC, programmieren)](https://images.gutefrage.net/media/fragen/bilder/vba-programmierung-in-word-in-tabelle-zeilen-aus-einblenden-und-mit-text-fuellen-/0_big.jpg?v=1397382717000)
1 Antwort
Hallo,
um die Tabellenzeile auszublenden anstatt zu löschen, dürftest du nicht die Anweisung .Delete verwenden, sondern müsstest den Schrifteffekt ausgeblendet einschalten. Dein Code würde dann so aussehen:
Private Sub OptNo_Click()
If OptNo = True Then
With ActiveDocument.Tables(1)
.Rows(2).Select
Selection.Font.Hidden = True 'Blendet die markierte Tabellenzeile aus
End With
End If
End Sub
Um wiederum in eine Tabellenzelle einen Text einzufügen, musst du die Zelle anspringen und den Text reinschreiben lassen:
With ActiveDocument.Tables(1)
.Cell(3, 2).Select 'Wählt die Zelle in der 3. Reihe, 2. Spalte aus
Selection.TypeText Text:="Hallo" 'Hier deinen Text einfügen
End With
Aber so wie ich das sehe, willst du die Einstellung des Sicherungsintervalls nicht "ausblenden", sondern verschwinden lassen, damit sie nicht anwählbar ist, wenn die Option Nein angewählt ist. Von daher passt deine .Delete-Anweisung oben schon.
Ich würde also die Einstellung des Sicherungsintervalls bei einem Klick auf Nein löschen, damit sie ganz verschwindet, und bei einem Klick auf Ja neu erzeugen, also einmal den Text "Sicherungsintervall" mittels VBA in die Tabellenzelle schreiben lassen, und danach die Listbox (Bitte auswählen) per VBA erzeugen lassen.
Gruß, BerchGerch