Das Beste, was ich herausfinden konnte, ist, einen neuen Kommentar um den neuen Text zu erstellen und den vorherigen Kommentar zu löschen. Ich habe versucht, die Start
Eigenschaft des Comment.Scope zu ändern, aber das scheint keinen Effekt zu haben.
Der folgende Code funktioniert. Was mich eine ganze Weile abwarf, ist die Tatsache, dass Word ein Kommentar-Objekt anscheinend nicht respektiert. Wenn ich einen Kommentar auf eine Variable setze, dann einen neuen Kommentar einfüge und der neue Kommentar vor dem Original eingefügt/indexiert wird, dann ersetzt der neue Kommentar das Original in der Objektvariablen. Im folgenden Code enthält CMTORIG den gerade hinzugefügten Kommentar, nicht das Original. Das Löschen von CmtOnig.Delete löscht CmtNew, sodass der verbleibende Kommentar den Zielbereich nicht enthält. Mit dem Index scheint es jedoch zuverlässig zu funktionieren.
Der einzige Vorbehalt ist, dass Sie jede Formatierung im Kommentar verlieren.
Sub ReplaceCommentRangeText()
Dim rngCommentScope As word.Range
Dim cmtOrig As word.Comment, cmtNew As Comment
Dim cmtIndex As Long
Dim rngTarget As word.Range
Set cmtOrig = ActiveDocument.Comments(1)
cmtIndex = cmtOrig.index
Set rngCommentScope = cmtOrig.Scope
rngCommentScope.Text = "C"
Set cmtNew = ActiveDocument.Comments.Add(rngCommentScope, cmtOrig.Range.Text)
'Debug.Print cmtNew.index, cmtIndex
If cmtNew.index = cmtIndex Then
ActiveDocument.Comments(cmtIndex + 1).Delete
Else
ActiveDocument.Comments(cmtIndex).Delete
End If
End Sub