2
www.ChF-Online.de  

Formularfelder ansprechen und füllen (I - Kontrollkästchen)

   Neuigkeiten
   API-Aufrufe in VBA
   VBA2HTML
   Word
   Word-VBA
 Verschiedenes
aktiv aktiv Feld-Arbeiten
 Felder aktualisieren
 Felder aktualisieren (II)
 Felder aktualisieren (III)
 Feldfunktion darstellen
aktiv  Formularfelder (I)
 Formluarfelder formatieren
 Formularfelder kopieren
 IHV formatieren
 Aktuelle Kalenderwoche
 Formular-QuickInfos
 Verkn. Dateien drucken
 Form-Sachen
 Menü-/Symbolleisten
 VBA und Lotus Notes
 VBA und Mail
 Inside VBAIDE
 Von Word nach Outlook
 Fix-und-Fertiges/Projekte
   Word2007 (RibbonX)
   Word2010 (RibbonX)
   Outlook-VBA
   Links zu VB(A)
   DocToHelp
   Netport Express XL
   Astronomie
   Gästebuch
   Volltextsuche
   Sitemap
   Buch:Word-Programmierung
   Impressum & Kontakt
   Datenschutzerklärung
Getestet unter Word2000Getestet unter WordXP  
Beispiel anzeigen
Makro/Datei speichern
Print

Mit Formularen lassen sich schnell Dokumente erstellen, in denen nur an bestimmten Stellen Werte eingegeben werden können (dürfen). Zum Anlegen dieser Stellen stehen verschiedene Formularfeldtypen in der Symbolleiste "Formular" zur Verfügung (Textfelder, Dropdown-Listen, Kontrollkästchen).

Sobald ein Dokument geschützt wird, können Eingaben nur noch in diese Felder erfolgen, bzw. können nur Werte aus der Dropdown-Liste ausgewählt werden.

In diesem ersten Teil wird gezeigt, wie alle Kontrollkästchen eines Formulars übersichtlich in einer Userform und dort in einer Listbox angezeigt werden können. Dabei werden gleichzeitig die Zustände der Kontrollkästchen (markiert/nicht markiert) angezeigt.

Wird der Zustand eines Kontrollkästchens in der Listbox geändert, kann über die Userform auch das entsprechende Kontrollkästchen im Dokument geändert werden.

Checkboxen einlesen

Das Identifizieren und somit Ansprechen der Kontrollkästchen im Dokument erfolgt über die Type und Name-Eigenschaft des jeweiligten FormField-Objekts.

Um den Wert des Kontrollkästchens zu ermitteln, muss explizipt die .CheckBox.Value-Eigenschaft angesprochen und ausgewertet werden.

Private Sub cmdList_Click()  
' Überträgt die Kontrollkästchen in die Listbox  
Dim ffCheckbox As FormField  
ListBox1.Clear  
ListBox1.ListStyle = fmListStyleOption  
ListBox1.MultiSelect = fmMultiSelectMulti  
For Each ffCheckbox In ActiveDocument.FormFields
  If ffCheckbox.Type = wdFieldFormCheckBox Then  
    ListBox1.AddItem ffCheckbox.Name 
    If ffCheckbox.CheckBox.Value = True Then  
     ListBox1.Selected(ListBox1.ListCount - 1) = True  
    End If  
  End If  
Next ffCheckbox  
End Sub  

Das Übertragen der änderungen aus der Listbox auf die Kontrollkästchen im Dokument erfolgt, indem das Formularfeld über den Namen des Kontrollkästchens direkt angesprochen und der Wert gesetzt wird.

Checkboxen setzen

Private Sub cmdSet_Click()  
' Überträgt die Listbox in das Kontrollkästchen  
Dim ffCheckbox As FormField
Dim i As Integer  
If ListBox1.ListCount = 0 Then Exit Sub  
For i = 0 To ListBox1.ListCount - 1  
  ActiveDocument.FormFields(ListBox1.List(i)).CheckBox.Value = ListBox1.Selected(i)  
Next i  
' Aktualisierung des Dokumentes bewirken  
Me.Move Me.Left + 1: Me.Move Me.Left - 1  
End Sub  

Damit die Änderungen im Dokument auch direkt angezeigt werden, muss zu einem Trick gegriffen werden: Erst wenn die Userform bewegt wird, wird die Steuerung an Word zurückgegeben und das Dokument aktualisiert. Dieses wird durch das minimale Verschieben der Userform erreicht und ist normalerweise nicht wahrnehmbar.


 Besucher: 0 online  |  0 heute  |  0 diesen Monat  |  2232530 insgesamt | Seitenaufrufe: 91   Letzte Änderung: 24.06.2006 © 2001-18 Christian Freßdorf
  Logiker, die philosophieren, sind scharfsinnige Irre.
R. Vollmann
 powered by phpCMS and PAX