2016-07-20 15 views
0

Ich bearbeite und erstellen Word-Dokument-Formulare für ein Energieunternehmen. Außendienstmitarbeiter werden diese Formulare auf einem Windows-Tablet im Feld öffnen. Wir verwenden Microsoft Word 2010. Ich habe die Entwickler-Registerkarte verwendet, um Kontrollkästchen und Datumsauswahl hinzuzufügen, und andere Funktionen, um das Ausfüllen dieser Formulare schneller und einfacher auf einem Tablet zu machen - aber wir haben ein paar Bedürfnisse, die sein müssen codiert.Word VBA - Hinzufügen einer Seite in einem kennwortgeschützten Dokument mit einer Schaltfläche

-Die Formulare sind passwortgeschützt, wobei nur bestimmte Felder für den Endbenutzer zur Bearbeitung verfügbar sind.

-Mein Chef möchte, dass der Benutzer die Option hat, eine zusätzliche Seite zu dem Dokument mit einem Klick auf eine Schaltfläche hinzuzufügen, vorzugsweise auf dem Formular selbst, aber immer noch das Formular passwortgeschützt sein. Er möchte, dass diese zusätzliche Seite dazu dient, Fotos von der Arbeit, die sie gerade machen, hinzuzufügen und auf Qualität zu prüfen. Er möchte, dass sie so viele Fotoseiten hinzufügen können, wie sie brauchen (ich dachte, wir könnten eine bestimmte Vorlage mit einer Schaltfläche "aufrufen", fügen die Schaltfläche am Ende der Seite hinzu und wenn sie eine Seite ausfüllen, Sie könnten auf die Schaltfläche in der Vorlage klicken und den Vorgang wiederholen.

-Ich habe eine Vorlagenseite für diese zusätzliche Seite erstellt, die ebenfalls passwortgeschützt ist und zwei der Felder "Bild einfügen" aus der Entwicklerregisterkarte und eine 1x1-Tabelle unter jedem zur Beschreibung des Bildes enthält.

Ich möchte wirklich lernen, VBA, und würde nicht nur kopieren und einfügen jemand anderen Code. Ich möchte verstehen, warum es funktioniert, und darauf aufbauen, wie es nötig ist.

Ich habe in HTML, CSS und Javascript (die Grundlagen) codiert.

+0

Das Problem, das Sie haben, ist ein bisschen zu breit zu beantworten. Beginne mit kleineren Teilen deines Features und benutze Google, um Startpunkte zu finden. – Chris

Antwort

0

Nach vielen Tagen zu verfluchen und Schleppen Foren, kam ich mit dieser Lösung auf und beschlossen, es hier, falls jemand zu verlassen sonst interessiert sich dies für ihr eigenes Projekt:

Private Sub PhotoPageTrigger_Click()

'Fotopagina Makro

ActiveDocument.Unprotect Password:="password" 'unprotect the document with the password 

Selection.GoTo What:=wdGoToBookmark, Name:="\EndofDoc" 'move cursor to the end of the last page 

Selection.TypeParagraph 'insert new paragraph to make a new page 

Selection.Font.Size = 12 'make the new page have a text size of 12 

ChangeFileOpenDirectory _ 
    "I:\FileLocation\" 'Go to this file location 

Documents.Open FileName:= _ 
    "I:\FileLocation\Form Picture Template.docm" _ 
    , ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _ 
    PasswordDocument:="", PasswordTemplate:="", Revert:=False, _ 
    WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _ 
    wdOpenFormatAuto, XMLTransform:="" 'Open this template document and read with these settings 

Selection.GoTo What:=wdGoToBookmark, Name:="\StartofDoc" 'move cursor to the beginning of the document 

Selection.WholeStory 'select all 

Selection.Copy 'copy all 

Selection.GoTo What:=wdGoToBookmark, Name:="\EndofDoc" 'move cursor to home place at the end of the document 

ActiveDocument.Close 'close the open template doc 

Selection.PasteAndFormat (wdUseDestinationStylesRecovery) 'paste contents of clipboard to now-active form doc at the cursor location 

Dim oData As New DataObject 'object to use the clipboard 

oData.SetText Text:=Empty 'Clear the clipboard 
oData.PutInClipboard 

ActiveDocument.Protect Password:="password", NoReset:=False, Type:= _ 
    wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=True 'reprotect document with password and these settings 

End Sub

Ziemlich glücklich gemacht haben es alle auf meiner eigenen Arbeit! :)