#1
|
|||
|
|||
VBA, Allow only Form Fields to edit in MSword
I am trying to write a macro, which should restrict any changes to Form except allowing content control properties.
I tried this macro, it does work and allows modification only to form fields(content control properties), however takes away capabilities to insert any image or table in these content control properties. Sub Protect_FormFields() ' ' Protect_FormFields Macro ' ' If ActiveDocument.ProtectionType = wdNoProtection Then ActiveDocument.Protect _ Type:=wdAllowOnlyFormFields, NoReset:=True End If End Sub I need the option to add a table. If I manually select all form fields -> restrict editing -> select 'allow only this type of editing in the document' -> under exception select 'everyone' -> yes, start enforcing protection => then it works as expected ( allows only form fields editing & still can add table/image to form fields). I am struggling to write a generic loop which should select all content control properties & then explicitly allow only selection for modification in a document Selection.Editors.Add wdEditorEveryone and apply below code on the rest of document. ActiveDocument.Protect Password:="", NoReset:=False, Type:= _ wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False I will really appreciate help/pointers to proceed |
#2
|
|||
|
|||
Form Fields and Content Controls are not the same thing.
First you say your want to protect everything in a form except content control properties. Tables and images "aren't" properties of a CC. They are content. I think you need to use "No Changes - Read Only" and apply the editor "Everyone the the CCs you want user's to be able to type in or add images. |
#3
|
||||
|
||||
Cross-posted at: ms word - VBA, Allow only Form Fields to edit in MSword - Stack Overflow
For cross-posting etiquette, please read: Excelguru Help Site - A message to forum cross posters
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#4
|
|||
|
|||
I could develop macro for my requirements
Sub Protect_Form_Fields_2()
' ' Protect_Form_Fields_2 Macro ' ' Dim i As Long Dim startPos As Integer Dim endPos As Integer With ActiveDocument For i = 1 To .ContentControls.Count Set ContentControl = .ContentControls(i) startPos = ContentControl.Range.Start - 1 endPos = ContentControl.Range.End + 1 Application.ActiveDocument.Range(startPos, endPos).Editors.Add WdEditorType.wdEditorEveryone Next i .Protect Password:="NoChange", NoReset:=False, Type:= _ wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False End With End Sub |
Tags |
msword, vba |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Don't clear form fields when protecting as a form | BruceM | Word | 5 | 10-06-2016 08:26 AM |
Macro to keep formatted form fields after mail merge or replace text with formatted form fields | jer85 | Word VBA | 2 | 04-05-2015 10:00 PM |
Using MSWord 2003 docs in MSWord 2010 | Joe Watson | Word | 7 | 05-31-2014 11:27 AM |
MSWord forms use list to populate successive text fields | 2surgeons | Word | 4 | 03-05-2012 07:19 PM |
Form Fields - Create blank form text field with if statement? | LAssist2011 | Word | 5 | 12-14-2011 03:02 PM |