Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Word Schutz programmieren mit .protect

02.11.2018 (👁62)

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