Page 358 - Writing Excel Macros with VBA, 2nd Edition
P. 358

   322 ❘ lesson 25  Not Gone, Not Forgotten

       Now, formula-containing cells will be shaded the color you specified in step 7, constant-containing
       cells will be formatted as you specified in step 10, and empty cells will have no Conditional Formatting.
       Microsoft has a downloadable help file for Excel 4.0 macros at this address:

        http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q128185&ID=KB;
       EN-US;Q128185&FR=1.

 Using the SendKeys Method

       The Application.SendKeys method sends keystrokes through VBA to the active application. The
       term “active application” plays a key role in understanding when and when not to use SendKeys.
       You’ll encounter some situations where SendKeys is the only viable alternative, and other situations
       where SendKeys should not be used.
       Executing a SendKeys command is a way of programmatically pressing the keys on your keyboard.
       If, as a service of convenience to the users of your workbook, they need to perform an edit by append-
       ing some text to the existing value, you can get them started with this set of SendKeys, which has the
       effect of double-clicking the cell and having the cursor blinking at the end of the current value:

                SendKeys “{F2}”
                SendKeys “{End}”

       This use of SendKeys should normally pose no problem. SendKeys gets more of a bad rap than it
       should because when executed in rapid-fire succession in loops or upon inactive applications, which
       is an ill-advised programming practice, the code compilation process cannot catch up with the exe-
       cution process after a time, and errors result when the intended window or object of interest is not
       the proper focus. In the preceding example, the use of SendKeys is fine because it’s just one com-
       mand in a small macro for a cell that is already selected.
       SendKeys is a better approach in the case of showing DataForms because the ShowDataForm com-
       mand will error if the source data’s header row starts on a row below row 2 (that is, row 3 or
       below), where rows 1 and 2 are empty. The Application.SendKeys “%DO” command will call the
       DataForm regardless of what row the source data starts on. Error traps and conditional statements
       for data starting on row 1 or row 3 are superfluous when a simple SendKeys command can handle
       the situation right then and there, whatever the first row of source data.

                  You may be curious about the syntax for Sendkeys. The keys for Alt, Ctrl, and
                  Shift are represented by the characters %, ^, and +, respectively. For example,
                  the expression “%c” means Alt+C; “^C” means Ctrl+C (which means copy);
                  and “+C” means Shift+C. The Enter key is represented by the tilde (~) char-
                  acter, and keys such as Home, End, and Tab are represented by SendKeys as
                  {Home},{End}, and {Tab}.

                                                           www.it-ebooks.info
   353   354   355   356   357   358   359   360   361   362   363