Я хочу создать макрос проверки орфографии для защищенных документов Word. Я больше знаком с Excel VBA, и я только что создал аналогичный проект для защищенных электронных таблиц, поэтому я попытался следовать той же логике c. Пока мой код копирует слова с ошибками из офисного документа в новую рабочую книгу Excel, а затем запускает проверку орфографии, но у меня возникают проблемы с вставкой нового значения обратно в исходный документ Word. У меня не может быть этого требования «добавления справочной библиотеки», так как она должна быть переносимой и работать без вмешательства конечного пользователя.
Вот что у меня есть:
Sub SpellCheckDoc()
Dim lockedFields As Long
Dim unlockedFields As New Collection
For Each theFields In ActiveDocument.Fields
If theFields.Locked = True Then
lockedFields = lockedFields + 1
Else
unlockedFields.Add theFields
End If
Next theFields
If lockedFields = ActiveDocument.Fields.Count Then Exit Sub
'Word
Dim objWord As Object 'Word.Application
Set objWord = GetObject(, "Word.Application")
'Excel
Dim objExcel As Object, objWB As Object
Set objExcel = CreateObject("Excel.Application")
Set objWB = objExcel.Workbooks.Add
objExcel.Visible = True
Set wb = objExcel.ActiveWorkbook
Set ws = wb.Worksheets("Sheet1")
For Each theFields In unlockedFields
If CheckSpelling(theFields.Result.Text) = False Then
theFields.Copy ' Select text from Word Doc
'Paste into new workbook and spellcheck
With ws
.Range("A1").Select
.Paste
.Range("A1").CheckSpelling
.Range("A1").Copy
End With
objWord.theFields.Paste ''' This line doesn't work
End If
Next theFields
End Sub