Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

Word Schutz programmieren in vba .protect

 

Word Dokumente zur Laufzeit schützen. Hier in vba/C# interop, makro

 

Dokument schützen

Als Schutz kann man die Eingabe reduzieren auf Eingabefelder mit WdProtectionType.wdAllowOnlyFormFields

     string sPassword = Settings1.Default.Password;

     //-< protect word >-

     _doc.Protect( Word.WdProtectionType.wdAllowOnlyFormFields,Password:sPassword);

     //-</ protect word >-

 

Dokument Schutz aufheben

     //-< unprotect word >-

     string sPassword = Settings1.Default.Password;

     _doc.Unprotect(sPassword);

     //-</ unprotect word >-

 

 

 

 

 

Beispiel Code

In C# VSTO Interop

Entsprechend in vba ohne semicolon

private void replace_Serial_Fields()

 {

     //-----------------< replace_Serial_Fields() >-----------------

     //-< unprotect word >-

     string sPassword = Settings1.Default.Password;

     _doc.Unprotect(sPassword);

     //-</ unprotect word >-

 

     //*Serienbrieffelder=ActiveDocument.FormFields[]

     //--< @Loop: SerialFields >--

     foreach (object varField in _doc.MailMerge.Fields)

     {

         //«KDNR»

         Word.MailMergeField field = (Word.MailMergeField)varField;

         string sField_Content = field.Code.Text;

         int posField = sField_Content.IndexOf("MERGEFIELD ");

         if (posField > -1) // MERGEFIELD SANr

         {

             //---< IsMail_Field >---

             //< get fieldname >

             posField = posField + "MERGEFIELD ".Length;

             string sField = sField_Content.Substring(posField);

             sField = sField.Trim();

             //</ get fieldname >

 

             //< get grid >

             int intColumn = get_Column_with_Header(sField);

             //</ get grid >

 

             if (intColumn >= 0)

             {

                 DataRowView row = (DataRowView) _dataGrid.SelectedItem;

                 string sReplace = row.Row.ItemArray[intColumn].ToString();

 

                 //< replace field >

                 field.Select();

                 _app.Selection.Text = sReplace;

                 //</ replace field >

             }

             //---</ IsMail_Field >---

         }

     }

     //--</ @Loop: SerialFields >--

 

 

     //-< unprotect word >-

     _doc.Protect( Word.WdProtectionType.wdAllowOnlyFormFields,Password:sPassword);

     //-</ unprotect word >-

     //-----------------</ replace_Serial_Fields() >-----------------

 }

 

 

 

 

 

programmatically

Mobile
vba
»
Word: Am Ende einer Zeile einen Zeilenumbruch einfügen und Text einfügen
»
Word Makro: Zeichen am Ende einer Zeile einfügen
»
Text Eingabefelder in Word mit vba c# formfields TextInput
»
Eingabefelder in Word erstellen. C#
»
Word Schutz programmieren in vba .protect
»
Word aktuellen Dokumentpfad bei Document1 Vorlage
»
Word vba: aktuellen Satz finden
»
Word vba: Dokument-Eigenschaft Titel dynamisch ändern mit Textbox Control
»
Word Code: Bearbeiten von Fotos und Controls in vba
»
Word vba-Makro: WordArt mit Glow-Effect und Shadow verändern

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de