Existe-t-il un moyen de rendre un paragraphe dans un document Microsoft Word 2003 en lecture seule à l'aide de VBA?Créer un paragraphe de texte en lecture seule à l'aide de VBA (Microsoft Word 2003)
Répondre
Je pense que vous ne pouvez le faire en sélectionnant les paragraphes qui vont pas être protégés. Vous trouverez ci-dessous un exemple de macro qui sélectionne un texte, l'active pour l'éditer, puis verrouille le reste du document. Vous pouvez utiliser IRM ou la protection par mot de passe, la macro ci-dessous utilise ce dernier. Vous devez remplacer la méthode de sélection ci-dessous par quelque chose de plus élégant
Selection.MoveLeft Unit:=wdCharacter, Count:=11, Extend:=wdExtend
Selection.Editors.Add wdEditorEveryone
ActiveDocument.protect Password:="password", NoReset:=False, Type:= _
wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False
Vous pourriez être en mesure de le faire en jetant le texte à être protégé en forme de texte et de la protection que. De toute évidence un peu dégoûtant.
La réponse ci-dessus laissera un surlignement jaune de la zone modifiable.
Une alternative ajoute ce code 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
Dans Word 2007 (testé), d'une manière plus directe est de créer un contrôle riche de contenu texte et définissez les propriétés. Cela rendra facilement un paragraphe en lecture seule sans faire de mise en évidence.
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
Plus ContentControl.LockContentControl bien sur https://msdn.microsoft.com/en-us/library/office/ff835775.aspx
Hope this quelqu'un d'aide ayant le même casse-tête! : D