Using Control Values While Code Is Running (Word)

You can set and return some properties for ActiveX controls while Visual Basic code is running. The following example sets the Text property of a text box to "Hello."

TextBox1.Text = "Hello"

The data entered in a form by a user is lost when the form is closed. If you return the values of controls on a form after the form has been unloaded, you get the initial values for the controls rather than the values the user entered.

If you want to save the data entered in a form, you can save the information to module-level variables while the form is still running. The following example displays a form and saves the form data in public variables prior to unloading the form.

'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 
 
Private Sub 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() 
 frmSalesPeople.Show 
 If blnCancelled = True Then 
 MsgBox "Operation Cancelled!", vbExclamation 
 Else 
 MsgBox "The Salesperson's ID is: " & _ 
 intSalesPersonID & _ 
 "The Region is: " & strRegion 
 End If 
End Sub

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.