Сделать текстовый абзац доступным только для чтения с помощью VBA (Microsoft Word 2003) - PullRequest
0 голосов
/ 05 января 2009

Есть ли способ сделать абзац в документе Microsoft Word 2003 только для чтения с помощью VBA?

Ответы [ 3 ]

1 голос
/ 05 января 2009

Я думаю, что вы можете сделать это только путем выбора абзацев, которые будут не защищены.

Ниже приведен пример макроса, который выбирает фрагмент текста, включает его для редактирования и затем блокирует остальную часть документа. Вы можете использовать IRM или защиту паролем, макрос ниже использует последний. Вы должны заменить метод выбора ниже на что-то более элегантное

Selection.MoveLeft Unit:=wdCharacter, Count:=11, Extend:=wdExtend 
Selection.Editors.Add wdEditorEveryone
ActiveDocument.protect Password:="password", NoReset:=False, Type:= _
wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False
0 голосов
/ 18 августа 2016

Ответ выше оставит желтую подсветку редактируемой области.

Одной из альтернатив является добавление этого кода AutoOpen http://answers.microsoft.com/en-us/office/forum/office_2010-word/remove-highlighting-in-editable-areas-of-protected/bfe22585-c5d3-4c19-997f-092fc4aaaa7a

Sub AutoOpen()
   ActiveWindow.View.ShadeEditableRanges = False
End Sub

В Word 2007 (протестировано) более прямым способом является создание элемента управления расширенным текстовым содержимым и настройка свойств. Это легко сделает абзац доступным только для чтения, не выделяя его.

Sub LockContent()

Dim objCC As ContentControl
Set objCC = ActiveDocument.ContentControls.Add(Type:=wdContentControlRichText)

With objCC
    .Range.Text = "123123" 'Your text
    .LockContentControl = True
    .LockContents = True
End With

End Sub

Подробнее ContentControl.LockContentControl Свойство на https://msdn.microsoft.com/en-us/library/office/ff835775.aspx

Надеюсь, это поможет любому, у кого такая же головная боль! : D

0 голосов
/ 05 января 2009

Вы можете сделать это, бросив защищаемый текст в текстовую форму и защитив его. Очевидно, немного брутто.

...