Word VBA - 使用按钮

时间:2016-07-20 16:18:24

标签: vba ms-word word-vba

我为能源公司编辑和创建单词文档表单。现场工作人员将在现场的平板电脑上打开这些表格。我们使用Microsoft Word 2010.我使用开发人员选项卡添加复选框和日期选择器,以及其他功能,以便在平板电脑上更快速,更轻松地填写这些表单 - 但我们需要一些需求编码。

- 表单受密码保护,只有某些字段可供最终用户编辑。

- 我的老板希望用户可以选择通过单击按钮向文档添加其他页面,最好是在表单本身上,但仍然可以使用密码保护表单。他希望这个额外的页面能够添加他们正在执行的工作的照片并检查质量。他希望他们能够根据需要添加任意数量的照片(我认为我们可以通过按钮调用"特定模板,将按钮添加到页面底部,并且填写页面,他们可以单击模板上的按钮,并重复该过程。

- 我为这个附加页面创建了一个模板页面,该页面也受密码保护,并且有两个"插入图片"开发人员选项卡中的字段,以及每个下方的1x1表格,用于描述图片。

我确实想学习VBA,而不是仅仅复制并粘贴别人的代码。我想根据需要了解它的工作原理并在此基础上进行构建。

我用html,css和javascript编码(基础知识)。

1 个答案:

答案 0 :(得分:0)

经过多天的诅咒和拖网论坛后,我想出了这个解决方案,并决定将其留在这里以防其他人对自己的项目感兴趣:

Private Sub PhotoPageTrigger_Click()

'PhotoPage Macro

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

非常高兴能让它全部靠自己工作! :)