Record and Edit a Macro

You can record macros to automate the following types of actions:

  • Sending data to, or typing text in, a host application
  • Cutting, copying, or pasting text or data from one host application to another
  • Switching tabs to move from one host application to another

You cannot record:

  • Interaction with InfoConnect settings and Productivity features (such as Spell Check, Auto Expand, and Auto Complete)
  • Connecting to or disconnecting from a host
  • Interaction with Web applications
  • Cutting or pasting from a host to an external application (for example, Notepad)

Recording a macro is an easy way to get started on a more complex macro. After you save a recorded macro, you can edit it in the Visual Basic editor to add functionality and make it easier to maintain.

If you are working with an unstructured display format (such as Open Systems terminals), you'll probably find it useful to record a macro and then look at the recorded code to get information such as the strings returned by a host or the screen positions of selected data.

This example shows how to record a macro that copies data to the clipboard. It also shows how to modify the recorded code to disconnect the session after the data is copied.

This article contains tabbed content that is specific to each terminal type. Be sure the tab for your terminal type is selected.
  • Select Record Macro.
  • Perform the task(s) that you want to automate.
  • (Optional) If you need to interrupt the recording to perform another task, click Pause Recording.
  • When you are ready to resume recording, click Pause Recording again. When you are finished recording the macro, click Stop Recording.
  • The Recording Complete dialog box appears.
  • Name the macro, choose the location where you want to save it, and then click OK.

Record and test a macro

  1. In an InfoConnect IBM terminal session, on the Tools tab, select Record Macro.
  2. Select some text on the screen.
  3. Right click on the selected text and then select Copy.
  4. Select Stop Recording and then save the recorded macro in the current document's project.
  5. Select and copy some other data so you can test the macro.
  6. Select Run Macro and then run the new macro you just recorded.
  7. Open a Word document and paste the data copied by the macro into the document.  

Modify the macro in the VBA Editor

  1. On the Tools tab, select Visual Basic.
  2. In the Visual Basic Editor Project Explorer window, open the Project folder and then in the Modules folder, select Recorded and then select the module that has the name of the macro. The recorded macro code is displayed in the code window.
    Recorded macro code to declare variables
    Copy Code
    Sub CopyData()
    '---------------------------------------------------------------------
    ' Generated by Attachmate InfoConnect 2014 (15.6.660.0)
    ' Generated by the Macro Recorder on 7/7/2014 5:13:44 PM
    '---------------------------------------------------------------------
        'Common variable declarations
        Dim ibmCurrentTerminal As IbmTerminal
        Dim ibmCurrentScreen As IbmScreen
        Dim hiddenTextEntry As String
        Dim returnValue As Integer
        Dim timeout As Integer
        timeout = 15000
        Set ibmCurrentTerminal = ThisFrame.SelectedView.control
        Set ibmCurrentScreen = ibmCurrentTerminal.screen
                                       
        ibmCurrentScreen.SetSelectionStartPos 1, 24
        ibmCurrentScreen.ExtendSelection 14, 44
        ibmCurrentScreen.Copy
     End Sub
    
  3. To modify the macro to automate other actions that not supported by the macro recorder, use the terminal and screen variables created by the macro. For example, to disconnect the session after the data is copied, you can add the following line at the end of the macro:
    Disconnect the session
    Copy Code
    ...
        ibmCurrentTerminal.Disconnect
    End Sub
    
  • Select Record Macro.
  • Perform the task(s) that you want to automate.
  • (Optional) If you need to interrupt the recording to perform another task, click Pause Recording.
  • When you are ready to resume recording, click Pause Recording again. When you are finished recording the macro, click Stop Recording.
  • The Recording Complete dialog box appears.
  • Name the macro, choose the location where you want to save it, and then click OK.

Record and test a macro

  1. In a InfoConnect VT terminal session, on the Tools tab, select Record Macro.
  2. Select and copy some data on the screen.
  3. Select Stop Recording and then save the recorded macro in the current document's project.
  4. Copy some other data to the clipboard so you can test the macro.
  5. Select Run Macro and then run the new macro you just recorded.
  6. Open a Word document and paste the data into the document.

Modify the macro in the VBA Editor

  1. On the Tools tab, select Visual Basic.
  2. In the Visual Basic Editor Project Explorer window, open the Project folder and then in the Modules folder, select Recorded and then select the module that has the name of the macro.
    The VBA code for the recorded macro is displayed in the code window.
    Recorded Macro Code
    Copy Code
    Sub CopyData()
        Call ExternalRecorded1
    End Sub
    
    Sub ExternalRecorded1()
    ' Generated by the InfoConnect Macro Recorder on 07-08-2014 12:00:37.96.
    ' Generated by Attachmate InfoConnect 2014 (15.6.660.0).
        Dim osCurrentScreen As Screen
        Dim osCurrentTerminal As Terminal
        Dim returnValue As Integer
        Set osCurrentTerminal = ThisFrame.SelectedView.control
        Set osCurrentScreen = osCurrentTerminal.Screen   
        'Select and copy text from the screen
        osCurrentScreen.SelectText 2, 22, 19, 55, RegionOption_Wrapped
        'Press EditCopy (Copy the selection and put it on the Clipboard).
        osCurrentScreen.Copy
        Exit Sub
        'Recording stopped at 12:00:51.92.
    End Sub 
    

  3. To modify the macro to automate other actions not supported by the macro recorder, use the terminal and screen variables created by the macro. For example, to disconnect the session after the data is copied, you can add the following line at the end of the macro:

    Disconnect the session
    Copy Code
    ...
       osCurrentTerminal.Disconnect
    End Sub
    

Run the macro from the VBA Editor

To run the macro from the editor, place the cursor in the code window and press F5.

Concepts

When you record a macro, the macro recorder creates variables for two important objects (the names of the objects are unique to the terminal type):

  • The Terminal (or IbmTerminal) object is the control that manages the host emulation session. It is the top level object for the session and can be used to access all other objects used for the session.
  • The Screen (or IbmScreen) object represents the host application screen. It provides methods and properties used to access host screen data.

The macro uses the ThisFrame property to get the control for the session that is selected (displayed in the workspace) during the recording. ThisFrame is a property that is available in any InfoConnect macro. It returns the top-level user interface component for the workspace and can be used to access the controls (sessions) running in the workspace.

For more about these objects, see Using the InfoConnect Object Model.

See Also