| About the Author | p. xi |
| About the Technical Reviewer | p. xiii |
| Acknowledgments | p. xv |
| Introduction | p. xvii |
| The Macro Recorder and Code Modules | p. 1 |
| Macro Security Settings | p. 1 |
| Trusted Publishers | p. 2 |
| Trusted Locations | p. 2 |
| The Remove Button | p. 3 |
| Lowering the Security Level | p. 3 |
| The Visual Basic Development Environment | p. 4 |
| The Immediate Window | p. 10 |
| The Locals Window | p. 11 |
| The Watch Window | p. 13 |
| Recording a Macro | p. 14 |
| Formatting the Table | p. 16 |
| Adding Totals | p. 17 |
| Same Task, Different Code | p. 18 |
| Writing a Macro in the VBE | p. 20 |
| More Macro Security | p. 21 |
| The Object Browser | p. 24 |
| Object Browser Window Elements | p. 25 |
| Standard Code Modules | p. 27 |
| Subprocedures | p. 28 |
| Functions | p. 28 |
| Type Statements | p. 29 |
| Class Modules | p. 29 |
| Sample Class and Usage | p. 31 |
| The Class-y Way of Thinking | p. 35 |
| UserForms | p. 36 |
| Toolbox Window Elements | p. 37 |
| Object-Oriented Programming: An Overview | p. 39 |
| OOP: Is It Worth the Extra Effort? | p. 40 |
| Summary | p. 41 |
| Data In, Data Out | p. 43 |
| Excel's Data Import Tools | p. 43 |
| Importing Access Data | p. 43 |
| Simplifying the Code | p. 46 |
| Importing Text Data | p. 48 |
| Macro Recorder-Generated Text Import Code | p. 51 |
| Using DAO in Excel 2007 | p. 54 |
| Importing Access Data Using Jet | p. 55 |
| Importing Access Data Using ODBC | p. 60 |
| Importing SQL Data Using ODBC | p. 65 |
| Using ADO in Excel 2007 | p. 67 |
| Importing SQL Data | p. 67 |
| Importing SQL Data Based on a Selection | p. 75 |
| Updating SQL Data | p. 80 |
| Of Excel, Data, and Object Orientation | p. 87 |
| Using the cExcelSetup and cData Objects | p. 95 |
| Summary | p. 96 |
| Using XML in Excel 2007 | p. 99 |
| Importing XML in Excel 2007 | p. 99 |
| Appending XML Data | p. 106 |
| Saving XML Data | p. 107 |
| Building an XML Data Class | p. 108 |
| A Final Test | p. 117 |
| Adding a Custom Ribbon to Your Workbook | p. 119 |
| Inside the Excel 2007 XML File Format | p. 119 |
| Viewing the XML | p. 120 |
| Adding a Ribbon to Run Your Custom Macros | p. 128 |
| Summary | p. 132 |
| UserForms | p. 133 |
| Creating a Simple Data Entry Form | p. 133 |
| Designing the Form | p. 133 |
| The Working Class | p. 139 |
| Coding the UserForm | p. 143 |
| Creating Wizard-Style Data Entry UserForms | p. 150 |
| Laying Out the Wizard Form | p. 152 |
| Adding Controls to the Form | p. 154 |
| HRWizard Classes | p. 160 |
| The HRWizard Business Objects | p. 161 |
| Managing Lists | p. 169 |
| The Data Class | p. 169 |
| Managing the Wizard | p. 172 |
| Coding the HRWizard UserForm | p. 178 |
| Summary | p. 191 |
| Charting in Excel 2007 | p. 193 |
| Getting Started | p. 193 |
| Looking at the Code | p. 198 |
| Summarizing with Pie Charts | p. 202 |
| Creating the Pie Chart | p. 206 |
| More Pie for Everyone | p. 211 |
| Dynamically Placing a Chart | p. 216 |
| Summary | p. 221 |
| PivotTables | p. 223 |
| Putting Data into a PivotTable Report | p. 223 |
| The Macro Code | p. 229 |
| Refreshing Data in an Existing PivotTable Report | p. 235 |
| Applying Formatting to a PivotTable Report | p. 238 |
| Summary | p. 247 |
| Debugging and Error Handling | p. 249 |
| Debugging | p. 249 |
| The Debugger's Toolkit | p. 249 |
| Quick Debugging | p. 253 |
| A Deeper Look | p. 261 |
| Error Handling | p. 275 |
| Is the File There? | p. 275 |
| Trapping Specific Errors | p. 278 |
| Summary | p. 285 |
| Office Integration | p. 287 |
| Creating a Report in Word | p. 287 |
| The Helper Functions | p. 290 |
| Creating an Instance of Word | p. 291 |
| Adding Charts to the Report | p. 295 |
| Creating a PowerPoint Presentation | p. 298 |
| Coding the Presentation | p. 299 |
| Summary | p. 314 |
| ActiveX and .NET | p. 315 |
| Using ActiveX Components in Your Excel 2007 Projects | p. 315 |
| Are There Any Benefits? | p. 316 |
| Custom Functionality with ActiveX | p. 316 |
| Excel in the .NET World | p. 323 |
| Managed Code in an Excel Project | p. 327 |
| Summary | p. 350 |
| Index | p. 351 |
| Table of Contents provided by Ingram. All Rights Reserved. |