
 jetzt weiß ich wieder, warum ich die Office-Produkte so liebe...
ok, anbei ein Code, der Dir hoffentlich ein wenig weiterhilft.
Anmerkungen:
* Seltsam ist, dass die Kontrollkästchen beide den gleichen Namen haben. Das sind auch andere Checkboxen, als wenn man sie mit den Entwicklertools in das Dokument einfügen würde. Da weißt Du sicherlich besser Bescheid als ich.
* Ich kann das geänderte Dokument auf meinem Rechner nicht speichern. Ich bekomme lediglich ein 'Befehl misslungen'. Das wird mit Sicherheit an diesem dusseligen Office Trust-Center liegen. Habe jetzt aber nicht den Nerv, mich da einzuarbeiten.
Code: Alles auswählen
IncludePath "COMatePlus" ; <- Muss Du auf Deine Bedürfnisse anpassen!
XIncludeFile "COMatePlus.pbi"
EnableExplicit
#wdFormatXMLDocument=12                  ; XML document format.
Procedure ShowErrorIfAny() 
  
  If COMate_GetLastErrorCode() 
    Debug COMate_GetLastErrorDescription() 
  EndIf 
  
EndProcedure 
Define.COMateObject     WordApplication
Define.COMateObject     WordDocument
Define.COMateEnumObject FormFields
Define.COMateObject     FormField
Define FormFieldName.s
Define FormFieldCheckBoxValue
Define.s SourceDoc = GetPathPart(ProgramFilename()) + "\setze_kontrollkästchen.docx" ; <- Muss Du auf Deine Bedürfnisse anpassen!
Define.s TargetDoc = GetPathPart(ProgramFilename()) + "\output.docx" ; <- Muss Du auf Deine Bedürfnisse anpassen!
WordApplication = COMate_CreateObject("Word.Application")
If WordApplication
  
  WordApplication\SetProperty("DisplayAlerts = #False") 
  
  Debug "Open..."
  WordDocument = WordApplication\GetObjectProperty("Documents\Open('" + SourceDoc + "')")
  ShowErrorIfAny()
  
  Debug "Enumeration..."
  FormFields = WordDocument\CreateEnumeration("FormFields") 
  
  If FormFields
    
    FormField = FormFields\GetNextObject() 
    
    While FormField
      
      ; Namen auslesen
      
      FormFieldName = FormField\GetStringProperty("Name")
      Debug "FormFieldName:  " + FormFieldName
      
      ; Wert der Checkbox auslesen
      FormFieldCheckBoxValue = FormField\GetIntegerProperty("CheckBox\Value")
      Debug "FormFieldCheckBoxValue: " + FormFieldCheckBoxValue
      
      ; Neuen Wert setzen
      FormField\SetProperty("CheckBox\Value=#True") ; ... oder #False
      ShowErrorIfAny()    
      
      Debug "-----------------"
      
      FormField\Release() 
      FormField = FormFields\GetNextObject() 
      
    Wend 
    
    FormFields\Release() 
    
  EndIf 
  
  ; schlägt bei mir fehl
  ;   Debug "ActiveDocument\SaveAs()..."
  ;   WordApplication\Invoke("ActiveDocument\SaveAs('" + TargetDoc + "')")
  ;   ShowErrorIfAny()
  
  ; schlägt bei mir fehl
  ;    Debug "ActiveDocument\SaveAs2()..."
  ;    WordApplication\Invoke("ActiveDocument\SaveAs2('" + TargetDoc + "', " + #wdFormatXMLDocument + " As Long)")
  ;    ShowErrorIfAny()
  
  Debug "Quit()..."
  WordApplication\Invoke("Quit(0)") 
  ShowErrorIfAny()
  
  WordApplication\Release() 
  ShowErrorIfAny()
  
  Debug "ende"
  
EndIf
Wie geschrieben: Der Code soll als Inspiration dienen. Vielleicht enthält er genau die Informationen, die Dir zur erfolgreichen Bearbeitung noch gefehlt haben.
Grüße ... Peter