Erweiterte Formulare in Word

401
dreamerboy

Ich möchte ein Formular in Word erstellen, in dem der in einem Kombinationsfeld ausgewählte Wert den Text in einem anderen Abschnitt des Formulars bestimmt.

Wie verweise ich beim Kombinieren eines Kombinationsfelds in einem Word-Dokument auf dieses Kombinationsfeld in VBA?

Vielen Dank.

0

2 Antworten auf die Frage

1
Rich Michaels

Legen Sie mithilfe des Eigenschaftensteuerelements einen eindeutigen Wert für den TAG fest.

enter image description here

Dann mache in deiner VBA so etwas wie ...

Dim cc As ContentControl For Each cc In ActiveDocument.ContentControls If cc.Tag = "MyCombo" Then 'then check the value If cc.Range.Text = "Do Wah Diddy Diddy" Then 'do something End If End If Next 
Soll sich dieser Code unter einem bestimmten Modul und einer bestimmten Subroutine wie ComboBox1_Change befinden? dreamerboy vor 5 Jahren 0
@dreamerboy Wenn Sie sofort eine Aktion ausführen möchten, wenn eine Auswahl getroffen wird, ist eine spezielle Subroutine erforderlich, die der Klasse "ThisDocument" der Vorlage oder des Dokuments hinzugefügt wird. Ich werde eine weitere separate Antwort hinzufügen. Rich Michaels vor 5 Jahren 0
0
Rich Michaels

Wenn Sie sofort Maßnahmen ergreifen, wenn der Endbenutzer aus Ihrem Kombinationsfeld für die Inhaltssteuerung ein Element auswählt, benötigen Sie ein privates Unterobjekt in der ThisDocument-Klasse.

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean) 

Darin können Sie eine Select Case-Methode hinzufügen, um das Tag des Content Control zu untersuchen und Maßnahmen zu ergreifen. Dies ist ein Beispiel aus einer meiner Apps.

Select Case ContentControl.Tag 'Cognitive domain Case "LDT_L1" For r = 0 To UBound(AchKnowledgeArray) If ContentControl.Range.Text = AchKnowledgeArray(r) Then r = r + 1 Exit For End If Next r