||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Excel, Visual Basic, VBA, Microsoft Office
Title: Microsoft Office Excel 2003 Programming Inside Out
Authors: Curtis Frye, Wayne Freeze and Felicia Buckingham
Publisher: Microsoft Press
Media: Book & CD
Verdict: Patchy, better at the basics than at the more advanced topics
Organised into five parts, 'Microsoft Office Excel 2003 Programming Inside Out' (a real snappy title?), aims to help the seasoned Excel user discover the delights of automation and programming using Visual Basic for Applications (VBA).
The opening section of the book contains a couple of chapters that give a quick run-down of what's new in Excel 2003 and an overview of the Excel user-interface. This is very much the quick intro before moving into the main business of the book, which starts with a three chapter introduction to VBA. This begins with an overview of programming and a look at Excel's macro recording functions. Following on from this is a chapter that primarily focuses on the Visual Basic editor and then the first steps into VBA - from declaring variables through to program flow to error handling. The final chapter in this part of the book takes the basic VBA syntax into functions and subroutines, including discussions of parameter passing, variable scope and program structure.
In programming a complex application like Excel the real complexities lie not in the programming language syntax, but in understanding and using the application's underlying object model. This is the topic for the third part of the book, which covers the Excel Object Model. This begins, logically, with the Application object and then moves down the hierarchy with a chapter on workbooks and worksheets and then a chapter that covers ranges and cells. These three chapters provide the details of the objects, methods and properties that any VBA program has to manipulate to do anything useful. As with the previous section of the book, the explanations are generally clear, with a good use of illustrations and screen shots. Also useful are the tips and tricks, particularly the gotchas around some of Excel's idiosyncrasies and inconsistencies.
Advanced VBA is the next part of the book. This section includes more on the core VBA language, particularly string manipulation and dates and times, and on formatting Excel objects, including cells, fonts, borders and so on. There is a chapter which introduces Add-ins and COM Add-ins, but here the material starts to feel more and more like an extract from a manual. There are fewer code samples and much more on the mechanics of producing and using an Add-in. On the other hand the material does go as far as covering using VB6 and .NET to create Add-ins. Other parts of this section include a chapter on file handling, and a short chapter on building class modules.
Part five looks at manipulating Excel objects, from charts to pivots to command bars and user forms. Again, there is less code in this section of the book and more lists and details that really belong in a manual. Having pages of dialog boxes types and parameters doesn't really help the programmer that much. Better to pick a few and then really get down to code to illustrate what you can and can't do.
The final part of the book looks at 'Excel and the outside world'. Chapters look at interfacing with the other Office applications, at SQL, an introduction to ActiveX Data Objects (ADO), the Excel Query program, HTML and XML. From a programming point of view this is an extremely interesting and useful area, however the book just doesn't live up to expectations. The chapter on ADO, for example, covers the ADO object model but does not include a single example of how this can be used from within Excel. Why not? A simple example would have made things much clearer and would have made the book more immediately useful.
Finally, if I was one of the authors I'd be hopping mad about some of the typos and errors in the text. The most glaring of which is the fact that the diagram of the object tree for CommandBars (chapter 17), is actually the object tree for PivotTables. Given that this is the sort of diagram that is most useful when writing code it's a really annoying error and one that should have been picked up before the book went to production.
To conclude, this is a patchy book that ultimately promises more than it delivers. It's strongest earlier on, when the focus is on the introductory material. As topics become more complex the amount of code seems to decrease, and in the case of the most advanced topics it almost disappears completely. None of this would be a problem except that the book bills itself as 'Programming Inside Out', suggesting that it would indeed go much deeper than it does.