《WordVBAActive控件在Word文档中的使用方法.docx》由会员分享,可在线阅读,更多相关《WordVBAActive控件在Word文档中的使用方法.docx(6页珍藏版)》请在三一办公上搜索。
1、WordVBAActive控件在Word文档中的使用方法WordVBA-ActiveX控件在Word文档中的使用方法 当您想要提供一种完善的方式让用户与宏直接进行交互、而不受对话框干扰的时候,可以向文档直接添加ActiveX控件,这如同可以向自定义对话框添加 ActiveX 控件一样。使用以下过程可以将 ActiveX 控件添加到您的文档。 1、 向文档中添加控件 您可以向文档的图形层或文本图层添加ActiveX 控件。 向图形层添加控件:单击控件工具箱上的控件。拖动控件的调整控点,直到控件的轮廓大小和形状符合要求。 向文本层添加控件:请在按住 SHIFT 键的同时单击控件工具箱上的控件。该控
2、件将自动添加到文档中的插入点。 注释: 将一个控件从窗体拖回控件工具箱,即可创建一个可重复使用的该控件的模板。这是一个非常有用的功能,能为用户实现标准的应用程序界面。 2、 设置控件属性 在设计阶段可以设置一些 ActiveX 控件的属性。在设计模式中,右键单击一个控件并单击右键菜单中的属性以显示属性窗口。属性名称显示在窗口的左栏,而属性值显示在右栏。可在属性名称的右边输入新值来设置该属性的值。 3、 初始化控件属性 您可以通过在宏中使用 Visual Basic 代码在运行时初始化ActiveX 控件。例如,您可在其中填充列表框中,设置文本值或设置选项按钮。 以下示例使用 Visual Ba
3、sic 的 AddItem 方法将数据添至名为 lstRegions 的列表框,然后设置文本框的值并显示窗体。 Private Sub GetUserName With UserForm1 .lstRegions.AddItem North 1 / 6 .lstRegions.AddItem South .lstRegions.AddItem East .lstRegions.AddItem West .txtSalesPersonID.Text = 00000 .Show . End With End Sub 也可使用窗体的 Visual Basic Initialize 事件中的代码为窗体
4、上的控件设置初始值。在 Initialize 事件中设置控件初始值的好处在于,初始化代码将保留在窗体中。可以将窗体复制到其他项目,并且当运行 Show 方法显示对话框时,将初始化控件。 Private Sub UserForm_Initialize With UserForm1 With .lstRegions .AddItem North .AddItem South .AddItem East .AddItem West End With .txtSalesPersonID.Text = 00000 End With End Sub 4、 控件和对话框事件 在向对话框或文档中添加了Acti
5、veX 控件后,应添加事件过程以决定控件如何响应用户操作。 用户窗体和控件有一系列预定义的事件。 例如,命令按钮具有 Click 事件,在用户单击命令按钮时,该事件发生,用户窗体具有 Initialize 事件,在加载窗体时,该事件运行。 2 / 6 要编写控件或窗体的事件过程,可双击窗体或控件打开一个模块,然后从过程下拉列表框中选择事件。 事件过程包含控件名称。例如,名为 Command1 的命令按钮的 Click 事件过程名称为 Command1_Click。 如果为事件过程添加代码后更改该控件的名称,这些代码仍保留使用原名称的过程中。例如,假定您为 Commmand1 的 Click 事
6、件添加代码,然后将该控件重命名为 Command2。在双击 Command2 时,将不会在 Click 事件过程中看到任何代码。您需要将代码从 Command1_Click 移动至 Command2_Click。 为了简化开发过程,最好在编写代码之前命名控件。 5、 运行代码时使用控件值 当运行 Visual Basic 代码时,您可以为ActiveX 控件设置并返回某些属性。下面的示例设置文本框中的Text属性为Hello。 TextBox1.Text = Hello 关闭窗体时,用户输入窗体中的数据将会丢失。如果卸载窗体后返回窗体上控件的值,则获得控件的初始值而不是用户输入的值。 若要保存
7、输入窗体中的数据,可在窗体运行时将信息保存到模块级的变量中。以下示例显示一个窗体,并在卸载窗体前用公共变量保存窗体数据。 Code in module to declare public variables Public strRegion As String Public intSalesPersonID As Integer Public blnCancelled As Boolean Code in form Private Sub cmdCancel_Click Module1.blnCancelled = True Unload Me End Sub 3 / 6 Private Su
8、b cmdOK_Click Save data intSalesPersonID = txtSalesPersonID.Text strRegion = lstRegions.List(lstRegions.ListIndex) Module1.blnCancelled = False Unload Me End Sub Private Sub UserForm_Initialize Module1.blnCancelled = True End Sub Code in module to display form Sub LaunchSalesPersonForm frmSalesPeopl
9、e.Show If blnCancelled = True Then MsgBox Operation Cancelled!, vbExclamation Else MsgBox The Salespersons ID is: & _ intSalesPersonID & _ The Region is: & strRegion End If End Sub 当控件被添加到文档之后就能创建可交互的文档,例如联机窗体。在文档中使用控件时需要注意以下几点: 可以对文本图层或文档的图形层添加 ActiveX 控件。若要向图形层添加控件,请单击控件工具箱上的控件。若要向文本层添加控件,请在按住 SHI
10、FT 键的同时单击控件工具箱上的控件。 4 / 6 向文本层添加控件是一个InlineShape对象,可以通过InlineShapes集合以编程方式访问的。向图形层添加控件是一个Shape对象,可以通过Shapes集合以编程方式访问的。 文本层中的控件被视为字符,可以像字符那样置于文本的某一行中。 在设计模式下,绘图层中的 ActiveX 控件只能在页面视图或 Web 版式视图中显示。 如果希望用户能够使用 ActiveX 控件但又不改变文档的版式,可通过单击窗体工具栏上的保护窗体按钮来保护文档。 Microsoft Word 实施文档中ActiveX 控件的LostFocus和GotFocu
11、s事件。在过程下拉列表框中列出的其他事件都记录在 Microsoft 窗体帮助。 若要向文档添加窗体域而非 ActiveX 控件,以创建联机窗体,请使用窗体工具栏。 文档中 ActiveX 控件的事件过程中的 Me 关键字引用的是文档而不是控件。 编写文档控件的事件代码与编写窗体控件的事件代码很相似。下面的 SpinUp 和 SpinDown 事件过程改变了包含名为SpinButton1的旋转按钮控件的文档中名为TextBox1的文本框控件的值。当用户单击下面或左侧的旋转按钮箭头时,文本框控件的值将减 1;当用户单击上面或右侧的旋转按钮箭头时,该值将加 1。 Private Sub SpinB
12、utton1_SpinDown Me.TextBox1.Value = Me.TextBox1.Value - 1 End Sub Private Sub SpinButton1_SpinUp Me.TextBox1.Value = Me.TextBox1.Value + 1 End Sub 下面的 Click 事件过程可切换到页面视图,并将名为cmdChangeView的命令按钮所在文档的缩放比例设为 100%。 Private Sub cmdChangeView_Click With Me.ActiveWindow.View 5 / 6 .Type = wdPrintView .Zoom.Percentage = 100 End With End Sub 6 / 6