Для того чтобы изменить VBA макрос таким образом, чтобы он применял настройки правописания только к выделенному тексту, можно добавить условие, которое будет проверять наличие выделения. Если текст выделен, макрос будет обрабатывать только этот участок документа. Ниже приведён обновлённый код:
```vba
Sub DisableSpellCheckForSelectionOrDocument()
Dim rngToCheck As Range
' Проверяем, есть ли выделенный текст
If Selection.Type <> wdNoSelection Then
' Если текст выделен, работаем только с выделением
Set rngToCheck = Selection.Range
Else
' В противном случае, работаем с всем документом
Set rngToCheck = ActiveDocument.Content
End If
Dim oPara As Paragraph
Dim oWord As Range
' Пройти по всем абзацам в выбранном диапазоне
For Each oPara In rngToCheck.Paragraphs
' Пройти по каждому слову в абзаце
For Each oWord In oPara.Range.Words
' Если есть ошибки правописания, применить настройку "Не проверять"
If oWord.SpellingErrors.Count > 0 Then
oWord.NoProofing = True
End If
Next oWord
Next oPara
' Сохранить изменения
rngToCheck.Document.Save
End Sub
```
Чтобы использовать этот обновлённый макрос:
1. Откройте MS Word и перейдите в ваш документ.
2. Выделите текст, для которого хотите изменить настройки правописания (если необходимо).
3. Нажмите Alt+F11, чтобы открыть редактор VBA.
4. Вставьте приведенный выше код в модуль.
5. Запустите макрос `DisableSpellCheckForSelectionOrDocument`.
Теперь макрос будет проверять, есть ли выделенный текст, и если он есть, применит настройку "Не проверять правописание" только к выделенному тексту. В противном случае он обработает весь документ.
```vba
Sub DisableSpellCheckForSelectionOrDocument()
Dim rngToCheck As Range
' Проверяем, есть ли выделенный текст
If Selection.Type <> wdNoSelection Then
' Если текст выделен, работаем только с выделением
Set rngToCheck = Selection.Range
Else
' В противном случае, работаем с всем документом
Set rngToCheck = ActiveDocument.Content
End If
Dim oPara As Paragraph
Dim oWord As Range
' Пройти по всем абзацам в выбранном диапазоне
For Each oPara In rngToCheck.Paragraphs
' Пройти по каждому слову в абзаце
For Each oWord In oPara.Range.Words
' Если есть ошибки правописания, применить настройку "Не проверять"
If oWord.SpellingErrors.Count > 0 Then
oWord.NoProofing = True
End If
Next oWord
Next oPara
' Сохранить изменения
rngToCheck.Document.Save
End Sub
```
Чтобы использовать этот обновлённый макрос:
1. Откройте MS Word и перейдите в ваш документ.
2. Выделите текст, для которого хотите изменить настройки правописания (если необходимо).
3. Нажмите Alt+F11, чтобы открыть редактор VBA.
4. Вставьте приведенный выше код в модуль.
5. Запустите макрос `DisableSpellCheckForSelectionOrDocument`.
Теперь макрос будет проверять, есть ли выделенный текст, и если он есть, применит настройку "Не проверять правописание" только к выделенному тексту. В противном случае он обработает весь документ.