INTRODUCTION TO VBA FOR EXCEL                      
                               
              Student VBA                
              Archive                
                               
                               
                               
                               
    Notes from our last class session                      
    - Resize                      
        my-vba-practice-book-6-21-16.xlsm   LINK                
        reading-data-fill-6-21-16.xls   LINK                
                               
    - Date functions & custom VBA function                      
        First-and-Last-Day-of-Month-6-21-16.xls   LINK                
                               
                               
                               
# TODAY'S CLASS: Tuesday, June 21, 2016                      
                               
                               
    Download this practice workbook to My Documents                      
        my-vba-practice-book-4.xlsm   LINK                
                               
                               
                               
    The resize property                      
    - This technique lets VBA focus on a range of cells extending out from a cell of                      
    interest                      
      - You can indicate the range without selecting it                      
    - Resize is used to create an extended range starting from and including the                      
    active cell                      
      - It is different from from OFFSET in that the number(s) in the parentheses indicate the                      
      row and column size of the resulting range                      
        - The first parameter is the number of rows, while the second is the number                    
        of columns                      
    - NOTE: DO NOT USE ZERO WITH RESIZE                      
      - If the extension is to happen in only one direction, the other parameter is omitted                      
        - Extending the selection horizontally requires that a comma precede the                      
        column dimension                      
        - This shows that the row extension is being omitted (second example)                      
        - If just a vertical extension is desired, the comma should be omitted (third                      
        example)                      
    - EXAMPLES:                      
      - Try these in our class practice book                      
        - ActiveCell.Resize(3, 7).Select                      
        - ActiveCell.Resize(, 7).Select                      
        - ActiveCell.Resize(3).Select                      
        my-vba-practice-book-4.xlsm   LINK                
                               
                               
                               
    Practice using Resize                      
    - Let's modify the Expenses macro (in the Data Fill exercise)                      
      - Instead of using the Range expression to specify the Destination cells that Autofill                      
      should use, we will use a single cell & the Resize property                      
        - OLD: Destination:=Range("A2:A8")                      
        - NEW: Destination:=Range("A2").Resize(                      
        Data Fill   LINK                
                               
                               
                               
    Project: First and last day of the month                      
    - This is a calculation project using built-in date & time functions                      
    - The goal is to calculate how many days there are in a month                      
      - Or, to say it differently, to calculate the last day in a month                      
    - To do this we have to strategize about using Excel or VBA date-time                      
    functions in a way that lets us "back in" to the last day number                      
    - Here are some phases we can try                      
      - Understand the logic of using various date-time or arithmetic calculations                      
      - Try this logic in the Excel spreadsheet environment                      
      - Try the logic as a VBA macro                      
      - Create a VBA function that Excel cells can "call"                      
        - It will work like other Excel built-in functions                      
        First and Last Day of the Month   LINK                
                               
                               
                               
    Learning VBA is not easy                      
    - Here is a lesson about the "Object Browser" in the VBA editor                      
      - It is not a pretty picture. It is good for very experience VBA programmers. For                      
      beginners, it is a complete failure.                      
        How to learn VBA properties & methods   LINK                
                               
                               
                               
    Write a program to list prime numbers                      
    - This is the kind of challenge you could get in an introductory programming                      
    class                      
      - It will teach you some of the fine points of writing programs that calculate results                      
        The prime number challenge   LINK                
                               
                               
    Home work:                      
              HOME                
    8. Review this lesson. Explore the resource web sites.     WORK                
        How to learn VBA properties & methods   LINK                
                               
                               
                               
    LOG YOUR COMPLETION OF EACH ASSIGNMENT   LINK                
                               
                               
                               
                               
  PREVIOUS CLASSES                      
                               
        June 14, 2016                      
                               
                               
    Download this practice workbook to My Documents                      
        my-vba-practice-book-4.xlsm   LINK                
                               
        Notes from our work in class (5/31/16)   LINK                
                               
        The solution path for the bonus problem - interior colors in a rectangle                      
                               
                               
                               
    Reading exercise: use the Autofill method on a range object                      
    - This author's code shows some stylistic variations                      
    - It also introduces the Autofill method                      
      - In regular Excel this is the "Fill Series" command                      
      - You may be familiar with this from the "black plus" cursor                      
        Data Fill   LINK                
                               
                               
        June 07, 2016                      
                               
                               
    Download this practice workbook to My Documents                      
        my-vba-practice-book-4.xlsm   LINK                
                               
        Notes from our work in class (5/31/16)   LINK                
                               
                               
                               
    Let's go back to the rectangular range with Color Index numbers                      
    - Some people made progress on their own                      
      - What did you invent?                      
    - For the rest of us, we will finish it right now                      
                               
                               
        May 31, 2016                      
                               
                               
    Download this practice workbook to My Documents                      
        my-vba-practice-book-4.xlsm   LINK                
                               
                               
    Home work:                      
                               
    7. Run the code to change fill color and brightness                      
      - This code will use several VBA constructs we have introduced                      
      - Run the code as given                      
      - Bonus: Can you figure out a way to do the cells as a rectangular range instead of                      
      a single vertical vector (column of cells)?                      
        - Do this only for the interior color macro                      
        Use For-Next loops to change cell fill color   LINK                
                               
        Notes from our work in class (5/31/16)   LINK                
                               
                               
                               
    LOG YOUR COMPLETION OF EACH ASSIGNMENT   LINK                
                               
                               
                               
        May 24, 2016                      
                               
                               
    Download this practice workbook to My Documents                      
        my-vba-practice-book-3.xlsm   LINK                
                               
                               
                               
    Referring to active objects                      
    - There are a variety ways to refer to active objects: ActiveWorkbook,                      
    ActiveSheet, ActiveCell                      
    - Examples of querying properties of active objects                      
      - MsgBox ActiveWorkbook.Name & " is the active workbook."                      
      - MsgBox ActiveSheet.Name & " is the active sheet."                      
      - MsgBox ActiveCell.Value & " is the value in the active cell."                      
      - MsgBox ActiveCell.Row & " is the row of the active cell."                      
    - Examples of changing properties of active objects                      
      - ActiveWorkbook.Author = "Dumbo the Elephant"                      
      - ActiveSheet.Name = "The Best Sheet"                      
      - ActiveCell.Value = "Amazing Cell"                      
      - ActiveCell.Interior.ColorIndex = 36                      
                               
                               
                               
    Offset                      
    - The Offset procedure shifts the "cell being indicated" relative to the position                      
    of cell to which this property is applied                      
      - This is known as "relative reference"                      
      - The shift can be up/down, or right/left, or both.                      
    - Row offset                      
      - Offset's 1st parameter is vertical movement                      
    - Column offset                      
      - The 2nd parameter is horizontal movement                      
    - Offsets can be positive or negative                      
    - EXAMPLE 1:                      
        ActiveCell.Offset(-1, -2).Activate                      
        - This says, "Go up 1 row, go left 2 columns, and activate that cell."                      
    - EXAMPLE 2:                      
        Dim TABLE_START as Range                      
        Set TABLE_START = Range("B6")                      
        TABLE_START = "Name"                      
        TABLE_START.Offset(,1) = "Age"                      
        TABLE_START.Offset(,2) = "Gender"                      
        TABLE_START.Offset(1) = "Dumbo"                      
        TABLE_START.Offset(1,1) = 68                      
        TABLE_START.Offset(1,2) = "Male"                      
        - Note 1: if a range object's property is omitted, the property is assumed to                      
        be .Value                      
        - Note 2: to assign an object to an object-type variable, you must use the                      
        VBA key word "Set". The variable TABLE_START is an object                      
        variable of type Range.                      
                               
                               
                               
    ITERATION: For-Next loops                      
    - The FOR-NEXT loop is a tool for performing actions in a repetitive manner                      
      - In this procedure a counter variable is started at a value in the FOR statement. At the                      
      end of this loop the NEXT statement causes the value of the counter variable to go up.                    
      Control then returns back to the FOR statement.                      
    - Before executing the code in the FOR-NEXT block, the FOR statement first                      
    checks to see that the counter's value is still within the bounds specified by                      
    the "To" clause.                      
    - EXAMPLE:                      
        Dim I as Integer 'I is the counter variable                      
        'Put some data in cells                      
        Range("A4").Activate                      
   

  ActiveCell = 1                      
        ActiveCell.Offset(,1) = 2                      
        ActiveCell.Offset(,2) = 3                      
        ActiveCell.Offset(,3) = 4                      
        ActiveCell.Offset(1) = 5                      
        Range("B5").Activate                      
        'Active cell value = the cell above the active cell times the cell to the left                      
        'of the cell B5                      
        For I = 1 To 3                      
        ActiveCell.Value = ActiveCell.Offset(-1) * ActiveCell.Offset(, -I)                      
        ActiveCell.Offset(, 1).Activate                      
        Next I 'Add 1 to I before repeating the loop                      
        - Note: If I has a value of 3, the FOR will permit the code to be executed. If                    
        the counter's value is bigger than the TO number, then control will                      
        shift to the first statement following the NEXT statement.                      
                               
                               
    Home work:                      
                               
    7. Run the code to change fill color and brightness                      
      - This code will use several VBA constructs we have introduced                      
      - Run the code as given                      
      - Bonus: Can you figure out a way to do the cells as a rectangular range instead of                      
      a single vertical vector (column of cells)?                      
        Use For-Next loops to change cell fill color   LINK                
                               
                               
                               
    LOG YOUR COMPLETION OF EACH ASSIGNMENT   LINK                
                               
                               
                               
        May 17, 2016                      
                               
                               
    Download this practice workbook to My Documents                      
        my-vba-practice-book-3.xlsm   LINK                
                               
        Modified Bold Cell (5/10/16)   LINK                
                               
                               
                               
    Here is another reading exercise                      
        Chart Object   LINK                
    - Please add this code to a module, and run the code                      
      - Something odd will happen                      
      - And please do a Save As before you run the macro                      
    - We will simultaneously read and debug the code                      
      - If we get stuck, we will use Help (F1) from the VBA editor                      
                               
                               
    Home work:                      
                               
    6. Debug the code in this reading exercise so the pie chart appears                      
        Chart Object   LINK                
      - Repeat the steps we did in class so that the pie chart shows up                      
      - Remember:                      
        - You can comment out lines to see where the error occurs                      
        - Learn about VBA key words: click in the word & tap <F1>                      
        - Please do Save As before running the macro                      
                               
                               
                               
    LOG YOUR COMPLETION OF EACH ASSIGNMENT   LINK                
                               
                               
                               
        May 10, 2016                      
                               
                               
    Download this practice workbook to My Documents                      
        my-vba-practice-book-2.xlsm   LINK                
                               
                               
                               
    Reading VBA code is an important skill (cont'd)                      
    - VBA is truly a language                      
      - When you learn a language you learn both expression & comprehension                      
      - Looking at other people's code improves your understanding of VBA                      
    - Download & open this workbook                      
        Bold Cell   LINK                
    - Let's go to the VBA editor and insert a module for this project (reading-bold-                      
    cell.xls)                      
      1. Go to the editor                      
      2. Right-click on "VBA Project (reading-bold-cell.xls)" & insert a module                      
      3. Go back to the worksheet                      
      4. Select and copy the shaded cells (which is the VBA code)                      
      5. Go to the editor & double-click on Module1                      
      6. Paste the code                      
      7. Go back to Excel and make Sheet1 the active sheet                      
      8. Run the macro                      
                               
                               
                               
    Debug.Print                      
    - The Debug.Print command is a simple debugging tool                      
      - It is a little like the MsgBox command we already used, however it prints to                      
      the "Immediate" pane in the VBA editor while the macro is running                      
      - It is useful because it gives us a viewport into what is happening while the                      
      macro is executing commands                      
    - We will use Debug.Print to tell us the value of the first cell in each row                      
    - First, some background: look at the VBA code and focus on each of these                      
      a. The construct Range("A1:E5").Rows breaks the range into a collection of rows                      
      b. The For Each rngRow In construct says "Take each of the rows one at a time"                      
      c. The command Next rngRow says "Now use the next rngRow (= next row)"                      
      d. The construct rngRow.Cells(1) means "Of the cells in this rngRow (=row), use the                      
      first cell"                      
      e. Finally, the construct rngRow.Row means "The row number of the current row".                      
      (Note: this is not in the code--yet.)                      
    - Now we will add a Debug.Print command to the code                      
      1. Click after the ".Rows" in the For Each statement                      
      2. Tap the <Enter> key                      
      3. Type this code:                      
        Debug.Print "The first cell in row " & rngRow.Row & _                      
        " has the value: " & rngRow.Cells(1).Value                      
      4. Activate Sheet1 in the "reading-bold-cell.xls" workbook                      
      5. Run the macro "Bold"                      
      6. Look at what is printed in the Immediate window pane in the VBA editor                      
        - Note: if you don't see the Immediate window, go to the View menu and                      
        click on "Immediate Window"                      
                               
                               
                               
    Activating objects using VBA                      
    - An OBJECT is a "thing" in VBA It is analogous to a noun in English.                      
    - EXAMPLES:                      
      - ActiveCell [the active cell]                      
      - Range("A14") [cell A14]                      
      - Cells(3,2) [row 3, column 2 = cell B2]                      
      - Worksheets("Sheet1") [first worksheet tab]                      
      - Worksheets(1) [first worksheet tab]                      
        - Notice that there are ways to refer to thing by name or by number                      
    - An object has properties and methods (=commands or functions)                      
      - Let's add this code to our Bold macro                      
        Worksheets("Sheet1").Activate                      
        Debug.Print "Active sheet: " & ActiveSheet.Name                      
        Debug.Print "Active workbook: " & ActiveWorkbook.Name                      
                               
                               
                               
    Activate, select or indicate a cell (cont'd)                      
    - In VBA a cell can be used in three different ways                      
      - Activate: this is like clicking on the cell in Excel                      
      - Select: this is similar to activate, but it also refers to selecting a group of cells (a range)                      
      - Indicate: this "points to" a cell or object without either activating it or selecting it                      
        - There is no Excel equivalent to this (which is why recorded macros fall                      
        short)                      
                               
                               
    Home work:                      
                               
    5. Download this reading exercise, then run the macro                      
        Chart Object   LINK                
      1. Save the file to a known location                      
      2. In the VBA editor, create a module for this workbook                      
      3. Copy the VBA code from the worksheet, and paste it into the new module                      
      4. Create a new worksheet in the the "reading-chart-object.xls" workbook                      
      5. Do a Save As                      
      6. Run the AssortedTasks macro, and evaluate the results                      
                               
                               
                               
    LOG YOUR COMPLETION OF EACH ASSIGNMENT   LINK                
                               
                               
                               
        May 03, 2016                      
                               
                               
    Download this practice workbook to My Documents                      
        my-vba-practice-book-1.xlsm   LINK                
                               
                               
                               
    Using the ampersand to label output                      
    - One way we use Excel and VBA is to report values                      
    - Values often need explanatory text, and we can use the text operator ( & )                      
    to clarify the meaning of a value                      
    - Try this on an Excel spreadsheet                      
      1. Open your "My VBA Practice Book" workbook                      
        - Open the most recent version                      
      2. Do a Save As to create the next version of this workbook                      
      3. Select a cell in column F 2, and type this formula:                      
        =ROW(C4)                      
      4. Select another cell in column F, and type this formula:                      
        ="Cell C4 is in row " & ROW(C4)                      
      5. If this experiment worked, then save the workbook                      
        - If it failed, then close Excel without saving ("Don't Save"), and start over                      
    - Do you see how the extra text improves the meaning & clarity of the                      
    message?                      
                               
                               
                               
    Use the MSGBOX function to report output                      
    - We can do something similar in VBA                      
      1. Do a Save As to create the next version of the My VBA Practice Book                      
      2. Go to the VBA editor (Alt-F11)                      
      3. Go to the module for this project                      
      4. Type this at the bottom of the module                      
        Sub CELL_ROW()                      
        <TAB key> 'Macro to select a cell & report its row number                      
        ActiveSheet.Range("C4").Activate                      
        MsgBox ActiveCell.Row                      
        MsgBox "Cell C4 is in row " & ActiveCell.Row                      
        End Sub                      
      5. Use Alt-F11 to return to the Excel worksheet                      
      6. Use Alt-F8 to run the macro "CELL_ROW"                      
      7. If this experiment worked, then save the workbook                      
        - If it failed, then close Excel without saving ("Don't Save"), and start over                      
    - Do you see how the extra text improves the meaning & clarity of the                      
    message?                      
                               
                               
                               
    Activate, select or indicate a cell (cont'd)                      
    - In VBA a cell can be used in three different ways                      
      - Activate: this is like clicking on the cell in Excel                      
      - Select: this is similar to activate, but it also refers to selecting a group of cells (a range)                      
      - Indicate: this "points to" a cell without either activating it or selecting it                      
        - There is no Excel equivalent to this (which is why recorded macros fall                      
        short)                      
                               
                               
                               
    Using VBA to select a range                      
    - The Select method is like the Activate method                      
      - However, Activate can only select a single object                      
      - Select can activate multiple objects (also known as a "collection")                      
    - To illustrate Select, we will write some VBA code                      
      1. Open up the most recent version of the My VBA Practice Book                      
      2. Go to the VBA editor, and activate a module belonging to this workbook                      
      3. Type this code:                      
        SUB SELECT_A_RANGE()                      
        RANGE("B14:D20").SELECT                      
        [did you hit the <Tab> before typing the previous line?]                      
        MSGBOX "Selection address = " & SELECTION.ADDRESS & VBLF & "Active cell = " & ACTIVECELL.ADDRESS    
        END SUB                      
      4. Return to the Excel spreadsheet & save the next version of this file                      
        - Use shortcut keys!                      
      5. Run the SELECT_A_RANGE macro                      
        - Use a shortcut key!                      
      6. If a bug (error) appears, return to the editor & debug your code                      
                               
                               
                               
    The line continuation character                      
    - Sometimes a line of code can be very long (as in the macro, above)                      
      - This can make code hard to read                      
    - For this reason, people use the underscore ( _ ) "line continuation" character                      
      - Actually, line continuation is two characters: a space + an underscore                      
    - Here are some tips for using the continuation character                      
      - You can break a line at an operator, list separator, or period                      
        - These are natural breaks in the flow of the VBA code                      
      - You cannot break statements in the middle of a keyword value or a text string                      
    - What if you are using a long text string and need to continue the line?                      
      - You can break the string into two strings, and use a combination of the concatenation                      
      operator ( & ) and the line-continuation character ( _ ) to make sure VBA reconnects                      
      them into one string expression                      
      - EXAMPLE:                      
        var1 = "This is a long string that we are going to break"                      
        MsgBox var1                      
                               
        var1 = "This is a long string th" & _                      
        "at we are going to break"                      
        MsgBox var1                      
    - Practice                      
      - Go back to the SELECT_A_RANGE macro, and break the MsgBox line into two lines                      
      using a continuation character                      
                               
                               
                               
    Reading VBA code is an important skill                      
    - VBA is truly a language                      
      - When you learn a language you learn both expression & comprehension                      
      - Looking at other people's code improves your understanding of VBA                      
    - Open this workbook                      
        Bold Cell   LINK                
                               
                               
    Home work:                      
                               
    4. Use the My VBA Practice Book to write a macro to select a range                      
        my-vba-practice-book-1.xlsm   LINK                
      - Follow the example we did in class                      
                               
                               
                               
    LOG YOUR COMPLETION OF EACH ASSIGNMENT   LINK                
                               
                               
                               
        April 26, 2016                      
                               
                               
    Important keyboard shortcuts                      
    - Use this to go to the View Macros dialogue box:                      
      Alt-F8                      
    - Use this to go to the VBA editor (IDE):                      
      Alt-F11                      
    - There isn't a good shortcut to record a macro. Here is a way:                      
      Alt-W-M-R                      
                               
                               
                               
    Command macros                      
    - These macros do not depend on the data in the worksheet                      
    - They were all made using the macro recorder                      
    - After you download the workbook, make a copy of it or make a second                      
    version of it                      
      - Then, try each macro using its keyboard shortcut                      
        Simple Macros   LINK                
                               
                               
                               
    Data-oriented macros: Find the last row in a table                      
    - If you wanted to find the last row in a table you might use this VBA expression:                    
      Range("a" & ActiveSheet.Rows.Count).End(xlUp).Row                      
    - This will introduce us to "data-oriented" macros                      
      - You don't record data-oriented macros, you write raw VBA                      
                               
                               
                               
    Activate, select or indicate a cell                      
    - In VBA a cell can be used in three different ways                      
      - Activate: this is like clicking on the cell in Excel                      
      - Select: this is similar to activate, but it also refers to selecting a group of cells (a range)                      
      - Indicate: this "points to" a cell without either activating it or selecting it                      
        - There is no Excel equivalent to this (which is why recorded macros fall                      
        short)                      
                               
                               
                               
    VBA code to activate a cell                      
    - Let's write some code                      
      1. Use Ctrl-N to create a new, blank workbook                      
        - In cell A1 type: MY VBA PRACTICE BOOK                      
      2. Use F12 to do a Save As                      
        - Location: My Documents                      
        - Name: My VBA Practice Book                      
        - Save as type: Excel Macro-Enable Workbook (*.xlsm)                      
      3. Use Alt-F11 to go to the VBA editor                      
      4. In the Project Explorer pane, click on "VBA Project (My VBA Practice Book.xlsm)"                      
      5. Go to the Insert menu, and insert a module                      
      6. Click in the module window, and type                      
        SUB ACTIVATE_A_CELL <Enter>                      
        <Tab> RANGE("B6").ACTIVATE                      
        END SUB (this is already there--don't type it)                      
      7. Use Alt-F11 to return to Excel                      
      8. Use Ctrl-S to save the workbook                      
      9. Use Alt-F8 to run your macro                      
                               
                               
    Home work:                      
                               
    3. Practice running macros & viewing the code                      
    - These "command" macros were all made using the macro recorder                      
    - After you download the workbook, use Save As to make a second version                      
    of it                      
      - Then, try each macro using its keyboard shortcut                      
        Simple Macros   LINK                
      - Remember, you can use Alt-F8 to help you run a macro. You can also use the specified                      
      shortcut keys to run them as well.                      
    - When you are ready, use Alt-F11 to go to the VBA editor                      
      - Open the modules where the VBA code is stored, and look at the code                      
                               
                               
                               
    LOG YOUR COMPLETION OF EACH ASSIGNMENT   LINK                
                               
                               
                               
        April 19, 2016                      
                               
                               
    Single quote character = comment                      
    - In the VBA editor, a single quote character ( ' ) turns the text following green                      
      - This means that text is a comment                      
      - When you run a macro, the VBA engine does not try to execute commented lines                      
      - There are two ways to use comments                      
      1. "Remove" bad lines of code                      
      2. Add explanations about what the code is doing                      
    - We will record an "all borders" macro & comment out unnecessary lines                      
      - Important: DO select the cells to get the border format BEFORE you start the macro                      
      recorder. DO NOT select the cells after you start recorder.                      
        - Why? Because if you select cells you will see code like this:                      
        Range("B3:D7").Select                      
                               
                               
    Home work:                      
                               
    2. Record an "all borders" macro & comment out unnecessary lines                      
      - Important: DO select the cells to get the border format BEFORE you start the macro                      
      recorder. DO NOT select the cells after you start recorder.                      
        - Why? Because if you select cells you will see code like this:                      
        Range("B3:D7").Select                      
        - Of course, if you do get this, you could try commenting out that line! :)                      
                               
                               
                               
    LOG YOUR COMPLETION OF EACH ASSIGNMENT   LINK                
                               
                               
                               
        April 12, 2016                      
                               
                               
    Places to go & alternate methods to get there, part 1                      
    - There are two places you will want to look at often  
 
                 
      1. The View Macros dialogue box                      
        - See all the macros currently available in Excel                      
        - Select & run a macro                      
        - Delete a macro                      
        - Go to the VBA editor                      
        - Options                      
        - Set a keyboard shortcut                      
        - Add/edit a description of the macro                      
                               
      2. The Integrated Development Environment (IDE)                      
        - This is a technical term referring to the VBA editor  
 
                 
        - It has many tools                      
        - It is not a dialogue box. It is a separate window from the spreadsheet                      
        window.                      
        - Here are its parts                      
        1. Menus & toolbars (across the top)                      
        2. Project explorer pane (on the left side, below the toolbars)                      
        3. The properties pane (on the left side, below the project explorer)                      
        4. The Immediate pane (on the bottom, to the right of the left pane that                      
        shows the Project Explorer & the Properties)                      
        5. The main window area (below the toolbars, to the right of the left                      
        pane, & above the Immediate pane)                      
                               
                               
                               
                               
                               
                               
                               
                               
                               
      3. The Record Macro dialogue box  
 
                 
        - This is where you prepare to record a macro                      
        - Give the macro a name                      
        - Assign a shortcut key to the macro                      
        - Determine what Excel workbook will store the macro                      
        - Write a short description of the macro (its purpose, its assumptions, etc.)                      
        - OK = START RECORDING!                      
                               
                               
                               
                               
                               
                               
                               
                               
    Places to go & alternate methods to get there, part 2                      
    - Here is one way to go to all three of these places                      
      1. The View Macros dialogue box                      
        - In the View ribbon, look on the right side for the Macros section                      
        - Click on the Macros icon (not the little arrow below the icon)                      
      2. The Integrated Development Environment (IDE)                      
        - Go to the Macros dialogue box                      
        - Click on the Edit button                      
      3. The Record Macro dialogue box                      
        - In the View ribbon, look on the right side for the Macros section                      
        - Click on the little arrow below the Macros icon (not on the icon itself)                      
                               
                               
                               
    How to record a macro                      
    - Macros can automate a sequence of commands that you want to                      
    perform on a spreadsheet                      
    - One way to create a macro is to record yourself performing an                      
    Excel command (or a sequence of commands)                      
      - This is tricky. There are a lot of things that can go wrong.                      
    - While you are recording a macro, you may record yourself selecting a cell                      
    by clicking on it                      
      - In that case, the macro recorder will record the cell you clicked on                      
      - However, there are two ways the recorder can write the VBA code for that cell: absolute                      
      reference, or relative reference                      
      - This exercise will show how each kind of cell reference changes what the macro does                      
        Introduction to Macros   LINK                
                               
                               
    Home work:                      
                               
    1. Create a macro by recording a sequence of commands                      
    - Practice the exercise above, "How to record a macro"                      
    - After you download the file, read and rehearse the steps to perform before                      
    you actually begin recording a macro                      
      - The sheet "1. absolute reference" contains instructions that you will perform on                      
      sheet "experiment 1"                      
      - The sheet "2. relative reference" contains instructions that you will perform on                      
      sheet "experiment 2"                      
    - Here is the file to download:                      
        Introduction to Macros                      
                               
                               
                               
    LOG YOUR COMPLETION OF EACH ASSIGNMENT   LINK                
                               
                               
                               
        April 05, 2016                      
                               
                               
    Getting started                      
    - Grading policy                      
      - Attend 80% of the classes + do 50% of the HW = You Pass!                      
    - Outline                      
        Course Outline   LINK                
    - Web site                      
      - Use this URL:                      
        nahlej.net                      
                               
                               
                               
    Assessment of your Excel background                      
    - Before we get started with VBA, please share your Excel background with Bob                    
    using this online form:                      
        Student Background Knowledge   LINK                
                               
                               
                               
    Macros: then and now                      
    - Once upon a time people used the macro recorder to create re-usable                      
    procedures                      
      - Excel had a macro language designed for this, and it was fairly easy to use                      
    - That is no longer the case. When you record a macro, it is converted to                      
    Visual Basic for Applications (VBA)                      
    - VBA is complex, hard to learn, and requires years of practice to get good                      
                               
                               
                               
    Macro Recorder pros & cons                      
    - You can use the macro recorder to get started using VBA                      
      - Benefits                      
        - This works if you have very simple commands you want to access quickly                      
        using shortcut keys                      
        - You can start getting acquainted with the VBA editor                      
        - You can use the macro recorder to investigate command code, and then                      
        use the VBA editor to adapt and paste that code into a larger macro                      
      - Difficulties:                      
        - The VBA code produced by the macro recorder is "ugly" (not well-                      
        written) much of the time                      
        - The macro recorder's VBA is not "adaptable". It works for a single set                      
        of data, but fails on another.