Angehakt oder nicht, das ist hier die Frage - Word-Herausforderung

  • Word

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von mumpel.

    Angehakt oder nicht, das ist hier die Frage - Word-Herausforderung

    Peace!
    Schon seit Stunden suche ich vergeblich nach einem VBA-Code, mit dem ich feststellen kann, ob ein Kästchen angekreuzt ist oder nicht. Konkret, es handelt sich um das Kästchen unter "Kann in Eigenverantwortung fertig gestellt werden" der beiliegenden Worddatei. Bisher habe ich es mit folgendem Code probiert, wobei ich es nicht schaffe, das Kästchen anzusprechen bzw. allenfalls zu selektieren.

    Dabei steht AppWD für die Word.Application und wddok für das Worddokument

    With AppWD
    .Selection.Find.ClearFormatting
    .Selection.Find.text = "Kann in Eigenverantwortung fertig gestellt werden"
    .Selection.Find.Execute
    .Selection.Find.ClearFormatting

    Selection.MoveRight Unit:=wdCell
    Selection.MoveRight Unit:=wdCell
    Selection.MoveRight Unit:=wdCell
    Selection.MoveRight Unit:=wdCell
    If Selection.ParentContentControl.Checked = True Then
    Debug.Print "Ist angekreuzt"
    Else
    Debug.Print "ist nicht angekreuzt"
    End If
    End With

    Wenn ich mit
    wddok.Activate
    Anzahl = wddok.FormFields.Count
    oder
    Anzahl = wddok.checkboxes.count
    oder
    Anzahl = wddok.Shapes.Count
    arbeite, erhalte ich eine 0 für die Anzahl. Daher frage ich mich auch, was das für ein Element ist, das ich ansprechen könnte. Die Worddatei habe ich leider auch nur erhalten, daher weiss ich nicht, wie ich dieses "Feld" ansprechen kann.

    Wäre toll, hier Hilfe zu erhalten!

    Gruss
    Verzweifelter User
    Dateien
    Hallo!

    Checkboxlesen schrieb:


    Daher frage ich mich auch, was das für ein Element ist, das ich ansprechen könnte.

    Kommt darauf an ob Du ein Formularsteuerelement oder ein ActiveX-Control nutzt. Für ein Formularsteuerelement (Kontrollkästchen) kannst Du folgenden Code probieren.

    Visual Basic-Quellcode

    1. Option Explicit
    2. Sub CBXPrüfen()
    3. Dim cntCheckboxCount As Long
    4. Dim cntCheckboxCounts As Long
    5. Dim cntCounts As Long
    6. Dim dokActiveDocument As Document
    7. Set dokActiveDocument = ThisDocument
    8. cntCheckboxCounts = 4 'Anzahl der Kontrollkästchen
    9. cntCounts = 0
    10. For cntCheckboxCount = 1 To dokActiveDocument.FormFields.Count
    11. If dokActiveDocument.FormFields(cntCheckboxCount).Name Like "Kontrollkästchen*" Then
    12. If dokActiveDocument.FormFields(cntCheckboxCount).CheckBox.Value = True Then cntCounts = cntCounts + 1
    13. End If
    14. Next cntCheckboxCount
    15. If cntCounts < cntCheckboxCounts Then
    16. MsgBox "Es wurden " & cntCounts & " Optionen ausgewählt", 64, "Hinweis"
    17. Else
    18. MsgBox "Es wurden alle Optionen gewählt", 64, "Hinweis"
    19. End If
    20. End Sub


    Gruß, René