Figure 1-1: VisiCalc, running in a DOS window on a PC running Windows XP.
Figure 1-2: The original Excel 2.1 for Windows. This product has come a long way.
Figure 1-3: Excel 3 was a vast improvement over the original release.
Figure 1-4: Excel 4 was another significant step forward, although still far from Excel 5.
Figure 1-5: Excel 2007 uses a new Ribbon user interface.
Chapter 2: Excel in a Nutshell
Figure 2-1: A pie chart on a chart sheet.
Figure 2-2: The Home tab of the Ribbon.
Figure 2-3: The Home tab when Excel's window is narrower.
Figure 2-4: The Home tab when Excel's window is very narrow.
Figure 2-5: When you select an object, contextual tabs contain tools for working with that object.
Figure 2-6: The Paste command is a split button control.
Figure 2-7: This small dialog launcher icon displays a dialog box that has additional options.
Figure 2-8: Add new icons to your QAT by using the Customization section of the Excel Options dialog box.
Figure 2-9: Pressing Alt displays the keytips.
Figure 2-10: Right-clicking some objects displays a mini-toolbar.
Figure 2-11: Tabbed dialog boxes make many options accessible without overwhelming the user.
Figure 2-12: This Smart Tag appears when you paste a copied range.
Figure 2-13: Locating clip art is one of several uses for the task pane.
Figure 2-14: Excel can monitor your formulas for possible errors.
Figure 2-15: The Insert Function dialog box is the best way to insert a function into a formula.
Figure 2-16: Excel's numeric formatting options are very flexible.
Figure 2-17: The data bars option is one of the new conditional formatting features in Excel 2007.
Figure 2-18: The Protect Sheet dialog box.
Figure 2-19: The Protect Workbook dialog box.
Figure 2-20: Use the Encrypt Document dialog box to save a workbook with a password.
Figure 2-21: Protecting a VBA project with the Project Properties dialog box.
Figure 2-22: Excel 2007 charts have improved in the looks department.
Figure 2-23: A SmartArt diagram.
Figure 2-24: Excel's new table feature makes it easy to sort and filter rows.
Figure 2-25: Create a Web Query to import data into a worksheet.
Figure 2-26: Excel's pivot table feature has many applications.
Figure 2-27: Excel's Help window.
Chapter 3: Formula Tricks and Techniques
Figure 3-1: An example of using nonrelative references in a formula.
Figure 3-2: Excel makes it easy to create names that use descriptive text in your worksheet.
Figure 3-3: The Name Manager displays the scope for each defined name .
Figure 3-4: Excel lets you name constants that don't appear in worksheet cells .
Figure 3-5: You can name a formula that doesn't appear in any worksheet cell .
Figure 3-6: Cell B1 contains an array formula that returns the total number of characters contained in range A1:A5. Notice the brackets in the formula bar.
Figure 3-7: A single multicell array formula is all it takes to make a calendar for any month in any year.
Figure 3-8: This simple worksheet demonstrates some useful formulas for counting and summing.
Figure 3-9: The Extended Date Functions add-in lets you work with pre-1900 dates.
Figure 3-10: Removing the middle names and initials requires six intermediate formulas.
Chapter 4: Understanding Excel's Files
Figure 4-1: Starting Excel from the Windows Run dialog box.
Figure 4-2: Customizing a shortcut to launch Excel.
Figure 4-3: Templates that you can use for invoices.
Figure 4-4: A simple workbook.
Figure 4-5: The directory structure of the workbook file.
Figure 4-6: Viewing an XML file in a Web browser.
Figure 4-7: Excel can often repair a damaged workbook file.
Figure 4-8: Viewing a QAT data file in Excel.
Figure 4-9: The Registry Editor lets you browse and make changes to the Registry.
Figure 4-10: Setting a value for a Registry setting.
Chapter 6: Essentials of Spreadsheet Application Development
Figure 6-1: An example of a customized shortcut menu.
Figure 6-2: A dialog box created with Excel's UserForm feature.
Figure 6-3: You can add dialog box controls to worksheets and link them to cells.
Figure 6-4: Worksheet controls.
Figure 6-5: Using the Protect Sheet dialog box to specify what users can and cannot do.
Figure 6-6: An example of custom help file for an Excel add-in.
Chapter 7: Introducing Visual Basic for Applications
Figure 7-1: By default, the Developer tab is not displayed.
Figure 7-2: The Visual Basic Editor window.
Figure 7-3: A Project Explorer window with three projects listed.
Figure 7-4: Your first VBA procedure.
Figure 7-5: The result of running the procedure in Figure 7-4.
Figure 7-6: The Editor tab of the Options dialog box.
Figure 7-7: An example of Auto List Members .
Figure 7-8: An example of Auto Quick Info offering help about the Cells property.
Figure 7-9: The Editor Format tab of the Options dialog box.
Figure 7-10: The General tab of the Options dialog box.
Figure 7-11: The Docking tab of the Options dialog box.
Figure 7-12: A convenient window arrangement for watching the macro recorder do its thing.
Figure 7-13: The main help screen for the Comment object.
Figure 7-14: The Object Browser is a great reference source.
Chapter 8: VBA Programming Fundamentals
Figure 8-1: VBA's way of telling you that your procedure contains an undeclared variable.
Figure 8-2: VBA displays a list of constants that can be assigned to a property.
Figure 8-3: Displaying a list of VBA functions in the VBE.
Chapter 9: Working with VBA Sub Procedures
Figure 9-1: The Macro dialog box.
Figure 9-2: The Macro Options dialog box lets you assign a Ctrl key shortcut and an optional description to a procedure.
Figure 9-3: The References dialog box lets you establish a reference to another workbook.
Figure 9-4: Assigning a macro to a button.
Figure 9-5: Executing a procedure by entering its name in the Immediate window.
Figure 9-6: VBA error messages aren't always user friendly.
Figure 9-7: You can create a message box to display the error code and description.
Figure 9-8: The SpecialCells method generates this error if no cells are found.
Figure 9-9: Use the VBE Immediate window to test a statement.
Figure 9-10: An empty procedure in a module located in the Personal Macro Workbook.
Figure 9-11: This message box tells the user that the sheets cannot be sorted.
Figure 9-12: This message box appears before the sheets are sorted.
Chapter 10: Creating Function Procedures
Figure 10-1: Using a custom function in a worksheet formula.
Figure 10-2: Using a custom function in a VBA procedure.
Figure 10-3: Calling a Function procedure from the Immediate Window.
Figure 10-4: Using a function to display the result of a calculation.
Figure 10-5: Different ways of passing an array or a single value to a worksheet.
Figure 10-6: Comparing SUM with MySum.
Figure 10-7: Use the Immediate window to display results while a function is running.
Figure 10-8: Inserting a custom function into a formula.
Figure 10-9: Provide a function description in the Macro Options dialog box.
Chapter 11: VBA Programming Examples and Techniques
Figure 11-1: The number of rows in the data range changes every week.
Figure 11-2: This workbook uses a custom shortcut menu to demonstrate how to select variably sized ranges by using VBA.
Figure 11-3: The InputBox function gets a value from the user to be inserted into a cell.
Figure 11-4: Validate a user's entry with the VBA InputBox function.
Figure 11-5: A macro for inserting data into the next empty row in a worksheet.
Figure 11-6: Use an input box to pause a macro.
Figure 11-7: A VBA procedure analyzes the currently selected range.
Figure 11-8: Using the intersection of the used range and the selected ranged results in fewer cells to process.
Figure 11-9: The goal is to duplicate rows based on the value in column B.
Figure 11-10: New rows were added, according to the value in column B.
Figure 11-11: Using Excel's InputBox method to prompt for a cell location.
Figure 11-12: All rows and columns are hidden, except for a range (G8:K17).
Figure 11-13: Using VBA to count the number of printed pages in a workbook.
Figure 11-14: A message box displaying the date and time.
Figure 11-15: Listing font names in the actual fonts.
Figure 11-16: Comparing the time required to perform sorts of various array sizes.
Figure 11-17: The RangeRandomize function returns the contents of a range, in random order.
Figure 11-18: Determining the path and name of the application associated with a particular file.
Figure 11-19: Using Windows API functions to get disk drive information.
Figure 11-20: Getting information about the active printer by using a Windows API call.
Figure 11-21: Using a Windows API call to determine the video display mode.
Chapter 12: Custom Dialog Box Alternatives
Figure 12-1: VBA's InputBox function at work.
Figure 12-2: Using VBA's InputBox function with a long prompt.
Figure 12-3: Using the InputBox method to specify a range.