Using If Statements

 

The If statements add another level of sophistication and intelligence to macros. They allow macros to take action based on certain conditions. If the condition is met, the macro takes a specific course of action. If it is not met, the macro does something else or ignores the condition. For example, insert text into a window if the window is open. If it is not open, have the macro do something else.

 

Below are some examples and things to keep in mind when using If statements.

 

 

1. End If

Every If statement must have a closing End If statement. The End If command signifies the end of the If statement and conditional logic used in the macro.

 

This sample macro highlights a line of text in Notepad and copies it to the clipboard. If the clipboard contains the word "Computer", the line is pasted into Excel. If the line does not contain the word "Computer", then the conditional is ignored and the next line in Notepad is copied to the clipboard.

 

 

Sample Macro

 

Repeat Start (Repeat 150 times)

  Text Type (Simulate Keystrokes): <SHIFT><END>

  Clipboard Copy

  Delay: .25 seconds, without ability to halt

  If Clipboard Contains "Computer"

    Window Activate: Excel

    Wait for Window Title: Excel

    Clipboard Paste

    Delay: .25 seconds, without ability to halt

    Text Type (Simulate Keystrokes): <ENTER>

    Window Activate: notepad

  End If

  Text Type (Simulate Keystrokes): <ARROW DOWN><HOME>

End Repeat

 

 

2. Else

The Else statement is the primary way to provide an either/or type option. If one condition isn't met, then the macro takes an alternative course of action. It does something else.

 

This sample macro is similar to the one above but includes an Else statement. The macro highlights a line of text in Microsoft Word and copies it to the clipboard. If the clipboard contains the word "Computer", the text is pasted into Notepad. Because of the Else statement, the text is pasted into WordPad if the clipboard does not contain the word "Computer".

 

 

Sample Macro

 

Repeat Start (Repeat 10 times)

  Text Type (Simulate Keystrokes): <SHIFT><END>

  Clipboard Copy

  Delay: .25 seconds, without ability to halt

  If Clipboard Contains "Computer"

    Window Activate: notepad

    Wait for Window Title: notepad

    Clipboard Paste

    Delay: .25 seconds, without ability to halt

    Text Type (Simulate Keystrokes): <ENTER>

    Window Activate: Microsoft Word

  Else

    Window Activate: Document - WordPad

    Clipboard Paste

    Delay: .25 seconds, without ability to halt

    Text Type (Simulate Keystrokes): <ENTER>

    Window Activate: Microsoft Word

  End If

  Text Type (Simulate Keystrokes): <ARROW DOWN><HOME>

End Repeat

 

 

3. AND/OR/XOR

The AND/OR/XOR options provide additional If Statement flexibility. The AND option requires that two If statements be true before action is taken. The OR option requires that either one or the other If statement be true before action is taken. With the XOR option, one If statement must be true and the other false in order for subsequent action to be taken.

 

Example macros using these options are included in the AND/OR/XOR help topic.

 

 

4. Nested If Statements

If statements may be nested inside other If statements. This example is a segment of a larger macro. It illustrates the nesting of one If statement within another. Each of the nested If statements requires a matching End If command.

 

 

Sample Macro

 

Variable Modify String %T[15]%: Copy Whole Text (%N[1]%)

  If Variable %N[1]% Is Greater Than 1

    Variable Modify String: Replace "(" in %T[16]% with ""

    Variable Modify String: Replace ")" in %T[16]% with ""

  Else

    If Variable %N[1]% Equals 1

      Variable Modify String: Replace "(s)" in %T[16]% with ""

    End If

  End If