Writing Excel Macros with VBA

Chapter 1. Introduction - Page 15
Figure 1-3. Select Special dialog - Page 16
Figure 1-4. A data label in edit mode - Page 17
1.3 Topics in Learning Excel Programming - Page 18
1.3 Topics in Learning Excel Programming - Page 19
Part I: The VBA Environment - Page 20
Chapter 2. Preliminaries - Page 21
Table 2-2. Assignment in Various Languages - Page 22
2.2.2 Readability - Page 23
2.2.2 Readability - Page 24
2.2.3 Modularity - Page 25
2.2.3 Modularity - Page 26
Chapter 3. The Visual Basic Editor, Part I - Page 27
3.1.1 Project Names - Page 28
3.1.2.1 The ThisWorkbook object - Page 29
3.1.2.5 UserForm objects - Page 30
3.2 The Properties Window - Page 31
3.3 The Code Window - Page 32
3.3.2.1 A workbook or sheet object - Page 33
Figure 3-7. The Object box - Page 34
Figure 3-9. The Immediate Window - Page 35
Figure 3-9. The Immediate Window - Page 36
Chapter 4. The Visual Basic Editor, Part II - Page 37
4.1.1.2 Tracing code - Page 38
4.2 Getting Help - Page 39
4.4 Run Time, Design Time, and Break Mode - Page 40
4.5 Errors - Page 41
Figure 4-4. A syntax error message - Page 42
Figure 4-6. A run-time error message - Page 43
4.6 Debugging - Page 44
Example 4-1. A Simple Program to Trace - Page 45
4.6.1.1 Stepping into - Page 46
4.6.1.6 Breaking out of Debug mode - Page 47
Figure 4-11. The Add Watch dialog box - Page 48
4.7 Macros - Page 49
4.7.2 Running Macros - Page 50
4.7.2 Running Macros - Page 51
Part II: The VBA Programming Language - Page 52
Chapter 5. Variables, Data Types, and Constants - Page 53
5.3.1 Enums - Page 54
5.3.1 Enums - Page 55
Figure 5-1. Example message box - Page 56
Table 5-1. VBA Data Types - Page 57
Table 5-2. Type-Declaration Suffixes - Page 58
Example 5-1. A Procedure with a Typo - Page 59
5.4.4 Boolean Data Type - Page 60
5.4.6 Date Data Type - Page 61
5.4.8.1 The generic As Object declaration - Page 62
5.4.9 Arrays - Page 63
5.4.9.3 The UBound function - Page 64
Table 5-3. Naming Convention for Standard Variables - Page 65
5.4.11 Variable Scope - Page 66
5.4.11.2 Module-level variables - Page 67
5.4.12 Variable Lifetime - Page 68
Example 5-2. ToComic() Modified to Use a Static Variable - Page 69
Figure 5-3. Dialog that appears if the static NotFirstTime is false - Page 70
5.5 VBA Operators - Page 71
5.5 VBA Operators - Page 72
Chapter 6. Functions and Subroutines - Page 73
Example 6-2. Assigning a Function's Return Value - Page 74
6.3 Parameters and Arguments - Page 75
6.3.2 Named Arguments - Page 76
6.3.3 ByRef Versus ByVal Parameters - Page 77
Example 6-5. Passing an Argument by Value - Page 78
6.4 Exiting a Procedure - Page 79
Figure 6-2. The References dialog box - Page 80
Chapter 7. Built-in Functions and Statements - Page 81
7.1 The MsgBox Function - Page 82
Figure 7-1. A MsgBox dialog box - Page 83
Figure 7-2. An InputBox dialog box - Page 84
Figure 7-2. An InputBox dialog box - Page 85
Figure 7-2. An InputBox dialog box - Page 86
Figure 7-2. An InputBox dialog box - Page 87
7.4 Miscellaneous Functions and Statements - Page 88
7.4.2 The Immediate If Function - Page 89
7.4.4 Units Conversions - Page 90
7.5 Handling Errors in Code - Page 91
Figure 7-3. An error dialog - Page 92
7.5.5 The Resume Statement - Page 93
Example 7-2. Error Handling with the Resume Statement - Page 94
Chapter 8. Control Statements - Page 95
8.2.1 Exit For - Page 96
8.3 The For Each Loop - Page 97
8.4 The Do Loop - Page 98
8.5 The Select Case Statement - Page 99
8.6 A Final Note on VBA - Page 100
8.6.3 The Format Function - Page 101
Part III: Excel Applications and the Excel Object Model - Page 102
Chapter 9. Object Models - Page 103
9.1.2 Methods - Page 104
9.2.1 The Base of a Collection - Page 105
9.3 Object Model Hierarchies - Page 106
9.4 Object Model Syntax - Page 107
9.5 Object Variables - Page 108
9.5.1 The With Statement - Page 109
Figure 9-3. An object variable in memory - Page 110
9.5.4 Freeing an Object Variable: the Nothing Keyword - Page 111
9.5.6 Default Members - Page 112
Table 9-2. Excel global members - Page 113
Chapter 10. Excel Applications - Page 114
Figure 10-1. Dialog for a charting utility - Page 115
10.1.1 Working with Toolbars and Menus Interactively - Page 116
10.1.2 Assigning Macros to Menus and Toolbars - Page 117
10.2.1 The Excel Startup Folder - Page 118
Figure 10-4. The New dialog showing template icons - Page 119
10.2.3 Excel Add-Ins - Page 120
Figure 10-6. Add-in properties - Page 121
Figure 10-8. VBA project properties - Page 122
10.2.3.2 Characteristics of an add-in - Page 123
10.2.3.3 Debugging add-ins - Page 124
10.3.2 Setting Up the Custom Menus - Page 125
Example 10-3. The DeleteCustomMenuItem Procedure - Page 126
Chapter 11. Excel Events - Page 127
Figure 11-1. Events for the Worksheet object - Page 128
11.5 WorkBook Events - Page 129
11.6 Chart Events - Page 130
Figure 11-2. Application-level events - Page 131
11.8 QueryTable Refresh Events - Page 132
Chapter 12. Custom Menus and Toolbars - Page 133
12.1.2 The CommandBar Object - Page 134
12.1.3.1 Popup controls - Page 135
Example 12-1. Listing Excel's CommandBar Objects - Page 136
12.3 Creating a New Menu Bar or Toolbar - Page 137
12.4 Command-Bar Controls - Page 138
12.4.1 Creating a New Command-Bar Control - Page 139
Example 12-3. Code to Generate a List of Control IDs - Page 140
Example 12-4. Outputting the IDs of Command-Bar Controls - Page 141
12.6 Example: Creating a Menu - Page 142
12.7 Example: Creating a Toolbar - Page 143
Example 12-7. The ExampleMacro Macro - Page 144
12.8 Example: Adding an Item to an Existing Menu - Page 145
12.9.1 Creating the Data Worksheet - Page 146
12.9.2 Setting Up the Custom Menus - Page 147
Example 12-12. The CreateCustomMenu Procedure - Page 148
12.9.3 Implementing the Features of the Add-in - Page 149
Example 12-14. The RunUtility Procedure - Page 150
Example 12-15. The IsBookOpen Function - Page 151
Example 12-17. The DeleteCustomMenus Procedure - Page 152
Chapter 13. Built-In Dialog Boxes - Page 153
Chapter 13. Built-In Dialog Boxes - Page 154
Table 13-2. Additional XlBuiltInDialog Constants and Their Values for Excel 9.0 - Page 155
Table 13-2. Additional XlBuiltInDialog Constants and Their Values for Excel 9.0 - Page 156
Chapter 14. Custom Dialog Boxes - Page 157
14.3 ActiveX Controls - Page 158
14.4 Adding UserForm Code - Page 159
14.5 Excel's Standard Controls - Page 160
Figure 14-4. Response to placing a standard Excel command button - Page 161
Figure 14-5. The activate sheet dialog - Page 162
14.6.2.2 Activate button - Page 163
14.6.3.2 ActivateSelectedSheet procedure - Page 164
14.6.3.3 Activate button code - Page 165
14.6.4 Trying the Activate Utility - Page 166
14.7.1 Referring to a Control on a Worksheet - Page 167
14.7.1 Referring to a Control on a Worksheet - Page 168
14.7.2 Adding a Control to a Worksheet Programmatically - Page 169
14.7.2 Adding a Control to a Worksheet Programmatically - Page 170
Chapter 15. The Excel Object Model - Page 171
Chapter 15. The Excel Object Model - Page 172
Table 15-3. Excel 10 objects with 5 or more children - Page 173
Table 15-4. The Excel Enums and their number of constants (Excel 8) - Page 174
Table 15-5. Additional enums for Excel 9.0 - Page 175
Table 15-5. Additional enums for Excel 9.0 - Page 176
Chapter 16. The Application Object - Page 177
Figure 16-2. The Excel Application object along with its hidden children - Page 178
16.1 Properties and Methods of the Application Object - Page 179
16.1 Properties and Methods of the Application Object - Page 180
16.1 Properties and Methods of the Application Object - Page 181
16.1.1 Members that Return Children - Page 182
16.1.2 Members that Affect the Display - Page 183
16.1.3 Members that Enable Excel Features - Page 184
16.1.3 Members that Enable Excel Features - Page 185
16.1.4 Event-Related Members - Page 186
16.1.4.2 OnTime method - Page 187
16.1.5 Calculation-Related Members - Page 188
16.1.5.4 CalculateBeforeSave property (R/W Boolean) - Page 189
16.1.6.3 FileDialog property - Page 190
16.1.6.6 GetSaveAsFilename method - Page 191
16.1.6.7 RecentFiles property (Read-Only) - Page 192
16.1.6.7 RecentFiles property (Read-Only) - Page 193
16.1.6.7 RecentFiles property (Read-Only) - Page 194
16.1.8 Members that Produce Actions - Page 195
16.1.8.2 Evaluate method - Page 196
16.1.8.3 Goto method - Page 197
16.1.8.3 Goto method - Page 198
16.1.8.4 Quit method - Page 199
16.1.9.2 InputBox method - Page 200
Table 16-5. Values for the InputBox Method's Type Parameter - Page 201
16.1.9.3 Selection property - Page 202
16.1.9.6 Union method - Page 203
16.1.9.6 Union method - Page 204
16.2.2 The Windows Collection and Window Objects - Page 205
Table 16-6. Members of the Window object - Page 206
Table 16-6. Members of the Window object - Page 207
Chapter 17. The Workbook Object - Page 208
17.1.2 Close Method - Page 209
17.1.6 OpenText Method - Page 210
17.1.6 OpenText Method - Page 211
Figure 17-2. A comma-delimited text file opened in Excel - Page 212
Figure 17-3. A fixed-width text file opened in Excel - Page 213
Figure 17-4. Children of the Workbook object - Page 214
Table 17-2. Members of Workbook that return children - Page 215
17.2.1 Activate Method - Page 216
17.2.5 Name, FullName, and Path Properties - Page 217
17.2.7 PrecisionAsDisplayed Property (R/W Boolean) - Page 218
17.2.11 ReadOnly Property (Read-Only Boolean) - Page 219
17.2.15 SaveCopyAs Method - Page 220
Figure 17-6. Example of the CustomView object - Page 221
17.4 Example: Sorting Sheets in a Workbook - Page 222
Figure 17-8. Augmenting the DataSheet worksheet - Page 223
Figure 17-8. Augmenting the DataSheet worksheet - Page 224
Chapter 18. The Worksheet Object - Page 225
Table 18-2. Members That Return Objects - Page 226
Table 18-2. Members That Return Objects - Page 227
Table 18-2. Members That Return Objects - Page 228
Table 18-2. Members That Return Objects - Page 229
Table 18-2. Members That Return Objects - Page 230
Table 18-2. Members That Return Objects - Page 231
Figure 18-2. A data form - Page 232
18.2 Children of the Worksheet Object - Page 233
18.2 Children of the Worksheet Object - Page 234
Figure 18-5. Outline collapsed to level 2 - Page 235
Figure 18-6. A worksheet and the PrintTitleRows property - Page 236
18.3.2 The AllowEditRange Object - Page 237
18.3.3 The UserAccess Objects - Page 238
18.4.1 Create the UserForm - Page 239
Table 18-5. Nondefault Properties of the Print Button - Page 240
18.4.2.4 The Form's Initialize event - Page 241
18.4.2.4 The Form's Initialize event - Page 242
Chapter 19. The Range Object - Page 243
19.1 The Range Object as a Collection - Page 244
19.2 Defining a Range Object - Page 245
19.2.1 Range Property - Page 246
19.2.2 Cells Property - Page 247
19.2.3 Column, Columns, Row, and Rows Properties - Page 248
Figure 19-1. A noncontiguous range - Page 249
Figure 19-2. The range as a union - Page 250
19.2.4 Offset Property - Page 251
19.3.4 AutoFill Method - Page 252
Figure 19-3. Worksheet to autofill range B1:B5 - Page 253
19.3.5 AutoFilter Method - Page 254
19.3.6 AutoFit Method - Page 255
19.3.6 AutoFit Method - Page 256
19.3.8 BorderAround Method - Page 257
19.3.9 Calculate Method - Page 258
Figure 19-6. The result of the ColumnDifferences method - Page 259
19.3.14 Consolidate Method - Page 260
Figure 19-7. Sheet2 before consolidation - Page 261
Figure 19-9. Sheet1 after consolidation with TopRow set to False - Page 262
19.3.16 CopyFromRecordset Method - Page 263
19.3.19 Delete Method - Page 264
19.3.21 Precedents and DirectPrecedents Properties - Page 265
19.3.25 Find Method - Page 266
19.3.26 FindNext and FindPrevious Methods - Page 267
19.3.27 Formula and FormulaR1C1 Properties - Page 268
19.3.28 FormulaArray Property - Page 269
19.3.29 FormulaHidden Property (R/W Boolean) - Page 270
19.3.33 Insert Method - Page 271
19.3.36 Next and Previous Properties - Page 272
19.3.40 PrintOut Method - Page 273
19.3.41 PrintPreview Method - Page 274
19.3.43 Select Method - Page 275
19.3.46 SpecialCells Method - Page 276
19.3.47 TextToColumns Method - Page 277
Table 19-3. FieldInfo Values for xlDelimited Text - Page 278
Figure 19-15. A worksheet with text to be parsed in A1:A3 - Page 279
19.3.49 WrapText Property - Page 280
Figure 19-18. A range with three areas - Page 281
Figure 19-20. The xlDiagonalDown constant - Page 282
19.4.3 The Border Object - Page 283
19.4.3.2 ColorIndex property - Page 284
19.4.3.4 Weight property - Page 285
19.4.6 The Font Object - Page 286
Figure 19-24. A conditionally formatted range - Page 287
19.4.8 The Interior Object - Page 288
19.4.8.3 PatternColor and PatternColorIndex properties - Page 289
Figure 19-25. The Settings tab of the Data Validation dialog - Page 290
Figure 19-26. The Input Message tab of the Data Validation dialog - Page 291
Figure 19-27. The Error Alert tab of the Data Validation dialog - Page 292
19.5 Example: Getting the Used Range - Page 293
19.6 Example: Selecting Special Cells - Page 294
Figure 19-28. Selecting unique values - Page 295
19.6.2 Designing the Dialog - Page 296
19.6.2.3 Tab Order - Page 297
Example 19-2. The SelectSpecial Procedure - Page 298
Example 19-6. The cmdUndo_Click Event Procedure - Page 299
Example 19-9. The cmdSelect_Click Event Procedure - Page 300
Example 19-10. The SelectIfDifferent Procedure - Page 301
Example 19-11. The SelectIfSame Procedure - Page 302
Example 19-12. The SelectIfEmpty Procedure - Page 303
Example 19-13. The cmdCompleteColumns_Click Procedure - Page 304
Chapter 20. Pivot Tables - Page 305
Chapter 20. Pivot Tables - Page 306
20.2 The PivotTable Wizard - Page 307
Figure 20-2. Step 2 in the PivotTable wizard - Page 308
Figure 20-4. Step 4 in the PivotTable wizard - Page 309
20.3 The PivotTableWizard Method - Page 310
20.3 The PivotTableWizard Method - Page 311
Figure 20-7. Illustrating page field order - Page 312
Example 20-1. The CreatePivotFields Procedure - Page 313
Example 20-2. The ShowFields Procedure - Page 314
Example 20-2. The ShowFields Procedure - Page 315
20.4.1 Naming Data Fields - Page 316
Example 20-4. Creating a Pivot Table Using the AddFields Method - Page 317
Table 20-2. Members of the PivotTable Object - Page 318
20.5.1.2 DataFields property - Page 319
20.5.1.7 VisibleFields property - Page 320
Figure 20-10. No totals at all - Page 321
20.5.3 Returning a Portion of a PivotTable - Page 322
Figure 20-13. The DataLabelRange range - Page 323
Figure 20-16. The RowRange range - Page 324
20.5.4 PivotSelect and PivotSelection - Page 325
Figure 20-19. Selecting the company label and data for Boston - Page 326
20.5.5 Additional Members of the PivotTable Object - Page 327
Figure 20-21. Illustrating a calculated field - Page 328
20.5.5.4 Null-related properties - Page 329
20.5.5.8 PageField-related properties - Page 330
20.6 Children of the PivotTable Object - Page 331
20.7.1 AutoShow-Related Members - Page 332
Figure 20-24. Illustrating AutoShow - Page 333
Figure 20-25. Illustrating AutoSort - Page 334
20.7.3.2 NumberFormat property - Page 335
20.7.4.2 LabelRange property - Page 336
20.7.7 Grouping - Page 337
20.7.8.1 Calculation property - Page 338
Figure 20-28. Calculation = xlRunningTotal - Page 339
Figure 20-30. Calculation = xlPercentOfColumn - Page 340
20.7.8.3 Calculations requiring a BaseField/BaseItem - Page 341
Figure 20-33. The finished calculation - Page 342
20.7.9 CurrentPage Property - Page 343
20.7.13 ServerBased Property - Page 344
Figure 20-36. ShowAllItems = True - Page 345
20.7.15 Subtotals Method - Page 346
20.8 The PivotCache Object - Page 347
20.8.3 OptimizeCache Property - Page 348
Table 20-5. Members of the PivotItem Object - Page 349
Figure 20-38. LabelRange for Store Type = Company - Page 350
20.9.7 ShowDetail Property - Page 351
20.9.8 Visible Property - Page 352
Figure 20-40. The PivotCell object - Page 353
20.10.2 CustomSubtotalFunction Property - Page 354
20.10.3 PivotCellType Property - Page 355
20.11 Calculated Items and Calculated Fields - Page 356
Figure 20-42. Illustrating a calculated item (CompanyX2) - Page 357
Figure 20-44. The output of ListFormulas - Page 358
20.12 Example: Printing Pivot Tables - Page 359
20.12.1.2 Print button - Page 360
Example 20-7. The cmdCancel_Click Event Procedure - Page 361
20.12.2.5 PrintPTs procedure - Page 362
Chapter 21. The Chart Object - Page 363
Figure 21-3. Step 4 in the chart wizard - Page 364
21.2.1 Creating Chart Sheets - Page 365
Example 21-1. Creating an Embedded Chart - Page 366
21.2.3 An Example of Chart Creation - Page 367
21.2.3 An Example of Chart Creation - Page 368
21.2.4 Z-Order and ChartObject Objects - Page 369
21.3 Chart Types - Page 370
21.3 Chart Types - Page 371
21.3.1.1 ApplyCustomType method - Page 372
Figure 21-8. Illustrating ApplyCustomType - Page 373
Figure 21-9. Children of the Chart object - Page 374
Figure 21-9. Children of the Chart object - Page 375
Figure 21-9. Children of the Chart object - Page 376
21.6 The Axis Object - Page 377
21.6 The Axis Object - Page 378
21.6.2.2 The Border property and the Border object - Page 379
21.6.3 CategoryNames Property - Page 380
21.6.5 Crosses and CrossesAt Properties - Page 381
Figure 21-11. Display unit labels - Page 382
21.6.8 Position- and Dimension-Related Properties - Page 383
21.6.9.1 The TickLabels object - Page 384
21.6.10 Units-Related Properties - Page 385
Figure 21-12. Axis units and scale - Page 386
Figure 21-14. Illustrating ReversePlotOrder (after) - Page 387
21.8 The ChartGroup Object - Page 388
Figure 21-15. Illustrating chart groups - Page 389
21.8.1 UpBars and DownBars - Page 390
21.8.3 HiLoLines - Page 391
21.9 The ChartTitle Object - Page 392
21.11 The Floor Object - Page 393
21.12.1 The LegendEntry Object - Page 394
21.13 The PageSetup Object - Page 395
21.15 The Series Object - Page 396
21.15.1 Adding a New Series - Page 397
Figure 21-25. Illustrating the Add method: the data - Page 398
Figure 21-27. Illustrating the data point legend - Page 399
Table 21-5. Members of the DataLabel Object - Page 400
21.15.3.2 MarkerSize and MarkerStyle - Page 401
Figure 21-29. Illustrating MarkerSize and MarkerStyle - Page 402
Table 21-8. Members that Return Children - Page 403
21.16.1 ChartWizard Method - Page 404
Figure 21-30. Illustrating the ChartWizard method - Page 405
21.16.3 PrintOut Method - Page 406
Example 21-3. Code in the Chart Sheet's Code Module - Page 407
Example 21-4. The ChartTypes.txt File - Page 408
21.18 Example: Printing Embedded Charts - Page 409
21.18.1 Create the UserForm - Page 410
Table 21-11. Nondefault Properties of the Cancel Button - Page 411
Example 21-8. The UserForm's Initialize Event Procedure - Page 412
Example 21-9. The PrintSelectedCharts Procedure - Page 413
Figure 21-34. Set Data Labels dialog - Page 414
Example 21-10. The Declarations Section of the basDataLabels Code Module - Page 415
Example 21-10. The Declarations Section of the basDataLabels Code Module - Page 416
Example 21-12. The Initialize Event Procedure - Page 417
Example 21-14. The cmdCancel and cmdSetLabels Click Events - Page 418
Example 21-14. The cmdCancel and cmdSetLabels Click Events - Page 419
Example 21-16. The cmdUndo_Click Event Procedure - Page 420
Chapter 22. Smart Tags - Page 421
22.2 SmartTagRecognizer Object - Page 422
22.4 SmartTagAction Object - Page 423
22.5 SmartTagOptions Object - Page 424
Part IV: Appendixes - Page 425
Appendix A. The Shape Object - Page 426
Figure A-2. Illustrating z-order - Page 427
Table A-1. MsoAutoShapeType Constants (and Values) - Page 428
Example A-1. Displaying Each AutoShape - Page 429
A.3.1 The TextFrame Object - Page 430
Figure A-3. A dampened sine wave of stars - Page 431
Figure A-4. Random stars spelling a name - Page 432
Figure A-5. A hypocycloid - Page 433
A.4 Diagram, DiagramNode, and DiagramNodeChildren Objects - Page 434
Figure A-8. The Diagram object and its children - Page 435
Figure A-8. The Diagram object and its children - Page 436
Appendix B. Getting the Installed Printers - Page 437
Appendix B. Getting the Installed Printers - Page 438
Example B-2. Calling the GetInstalledPrinters Procedure - Page 439
Appendix C. Command Bar Controls - Page 440
Appendix C. Command Bar Controls - Page 441
Appendix C. Command Bar Controls - Page 442
Appendix C. Command Bar Controls - Page 443
Appendix C. Command Bar Controls - Page 444
Appendix C. Command Bar Controls - Page 445
Appendix C. Command Bar Controls - Page 446
Appendix C. Command Bar Controls - Page 447
Appendix C. Command Bar Controls - Page 448
Appendix C. Command Bar Controls - Page 449
Appendix C. Command Bar Controls - Page 450
Appendix C. Command Bar Controls - Page 451
Appendix C. Command Bar Controls - Page 452
Appendix C. Command Bar Controls - Page 453
Appendix C. Command Bar Controls - Page 454
Appendix C. Command Bar Controls - Page 455
Appendix C. Command Bar Controls - Page 456
Appendix C. Command Bar Controls - Page 457
Appendix D. Face IDs - Page 458
Figure D-2. FaceIDs for icons 800 -1599 - Page 459
Figure D-3. FaceIDs for icons 1600 -2399 - Page 460
Figure D-4. FaceIDs for icons 2400 -3199 - Page 461
Figure D-5. FaceIDs for icons 3200 -3399 - Page 462
Figure D-5. FaceIDs for icons 3200 -3399 - Page 463
Appendix E. Programming Excelfrom Another Application - Page 464
E.2.1 An Alternative Approach - Page 465
E.2.1.2 The GetObject function - Page 466
E.2.1.2 The GetObject function - Page 467
Appendix F. High-Level and Low-Level Languages - Page 468
F.1 BASIC - Page 469
F.2 Visual Basic - Page 470
F.3 C and C++ - Page 471
F.4 Visual C++ - Page 472
F.5 Pascal - Page 473
F.6 FORTRAN - Page 474
F.8 LISP - Page 475
F.8 LISP - Page 476
Appendix G. New Objects in Excel XP - Page 477
Appendix G. New Objects in Excel XP - Page 478
Appendix G. New Objects in Excel XP - Page 479
Appendix G. New Objects in Excel XP - Page 480
Appendix G. New Objects in Excel XP - Page 481
Figure G-1. The Error Checking tab - Page 482
Figure G-1. The Error Checking tab - Page 483
Figure G-1. The Error Checking tab - Page 484
Figure G-1. The Error Checking tab - Page 485
Figure G-1. The Error Checking tab - Page 486
Figure G-1. The Error Checking tab - Page 487
Figure G-1. The Error Checking tab - Page 488
Figure G-2. The Watch Window - Page 489