2016-07-20 12 views
0

エネルギー会社のワードドキュメントフォームを編集して作成します。現場の要員は、フィールドのWindowsタブレットでこれらのフォームを開きます。 Microsoft Word 2010を使用しています。デベロッパータブを使用してチェックボックスや日付ピッカーなどの機能を追加して、これらのフォームをタブレットですばやく簡単に埋め込むことができましたが、コード化される。Word VBA - ボタンでパスワードで保護されたドキュメントにページを追加する

- フォームはパスワードで保護されており、エンドユーザーが編集できる特定のフィールドのみがあります。

- 私のボスは、フォームのボタンをクリックするだけでドキュメントに追加ページを追加するオプションをユーザに提供したいと考えていますが、フォームはパスワードで保護されています。彼は、この追加のページが、彼らが行っている作業の写真を追加し、品質をチェックするためのものであることを望んでいます。彼は、彼らが必要とする数の写真ページを追加できるようにしたいと思っています(ボタンを使って特定のテンプレートを呼び出すことができると思っていました。そして、ボタンをページの下部に追加し、テンプレート上のボタンをクリックしてプロセスを繰り返すことができます)。

- この追加ページのテンプレートページを作成しました。これはパスワードで保護されており、開発者タブの2つの「画像を挿入」フィールドと、画像の説明の下に1x1のテーブルがあります。

私は本当にVBAを学びたいと思っています。他人のコードをコピーして貼り付けるのではなく、私はそれがなぜ機能し、それを必要に応じて構築するのか理解したい。

私はhtml、css、およびjavascript(基本)でコード化しました。

+0

あなたが持っている問題は、答えが広すぎるほどです。あなたの機能のより小さい部分から始め、スタートポイントを見つけるためにGoogleを使用してください。 – Chris

答えて

0

のろいとトロールフォーラムの多くの日後、私はこの解決策を思い付いた、と他の誰かが自分のプロジェクトのために、このに興味がある場合には、ここでそれを残すことにしました:

ます。Private Sub PhotoPageTrigger_Click()

「PhotoPageマクロ

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の

それは自分ですべてを仕事行ったことがかなり満足! :)

関連する問題