Table Of ContentMicrosoft
®
Excel VBA
Programming
for the Absolute
Beginner
Second Edition
DUANE BIRNBAUM
© 2005 by Thomson Course Technology PTR. All rights reserved. No Publisher and General Manager
part of this book may be reproduced or transmitted in any form or by of Course Technology PTR:
any means, electronic or mechanical, including photocopying, record- Stacy L. Hiquet
ing, or by any information storage or retrieval system without written
Associate Director of Marketing:
permission from Thomson Course Technology PTR, except for the
Sarah O’Donnell
inclusion of brief quotations in a review.
Marketing Manager:
The Premier Press and Thomson Course Technology PTR logo and
Heather Hurley
related trade dress are trademarks of Thomson Course Technology PTR
and may not be used without written permission. Manager of Editorial Services:
Heather Talbot
Microsoft is a registered trademark of Microsoft Corporation in the
United States and/or other countries. Acquisitions Editor:
Mitzi Koontz
All other trademarks are the property of their respective owners.
Senior Editor:
Important:Thomson Course Technology PTR cannot provide software
Mark Garvey
support. Please contact the appropriate software manufacturer’s tech-
nical support line or Web site for assistance. Marketing Coordinator:
Jordan Casey
Thomson Course Technology PTR and the author have attempted
throughout this book to distinguish proprietary trademarks from Project Editor:
descriptive terms by following the capitalization style used by the Scott Harris/Argosy Publishing
manufacturer.
Technical Reviewer:
Information contained in this book has been obtained by Thomson Arlie Hartman
Course Technology PTR from sources believed to be reliable. However,
because of the possibility of human or mechanical error by our sources, PTR Editorial Services
Thomson Course Technology PTR, or others, the Publisher does not Coordinator:
guarantee the accuracy, adequacy, or completeness of any information Elizabeth Furbish
and is not responsible for any errors or omissions or the results
Copy Editor:
obtained from use of such information. Readers should be particularly
D. A. de la Mora
aware of the fact that the Internet is an ever-changing entity. Some
facts may have changed since this book went to press. Interior Layout Tech:
Shawn Morningstar
Educational facilities, companies, and organizations interested in
multiplecopies or licensing of this book should contact the publisher Cover Designer:
for quantity discount information. Training manuals, CD-ROMs, and Mike Tanamachi
portions of this book are also available individually or can be tailored
CD-ROM Producer:
for specific needs.
Keith Davenport
ISBN: 1-59200-729-5
Indexer:
Library of Congress Catalog Card Number: 2004114911
Nancy Fulton
Printed in the United States of America
Proofreader:
05 06 07 08 09 BH 10 9 8 7 6 5 4 3 2 1
Jan Cocker
Thomson Course Technology PTR,
a division of Thomson Course Technology
25 Thomson Place
Boston, MA 02210
http://www.courseptr.com
Acknowledgments
First, a special thank you goes out to my family:
• My wife Jill, for putting up with the late nights and weekends I spent
writing
• My 8-year old son Aaron, who thinks it’s cool that his Dad writes such
long books with so many words, but wishes it included chapters on
dragons or wizards
• My 5-year old son Joshua, who wished his Dad would have played more
games with him instead of working on this book. Don’t worry, Josh;
because of the guilt trip you sent me on, I’ll more than make it up to you.
I would also like to thank Scott Harris at Argosy Publishing, Mitzi Koontz, and all
of the other contributors associated with Course Technology for their invaluable
help in putting this book together.
About the Author
D
uane Birnbaumbegan programming in graduate school, where he wrote
custom software for interfacing the electronic equipment required for his
experiments and analyzing the data obtained from them. Since completing
his Ph.D. in physical chemistry in 1991, he has worked as a post-doctoral and research
scientist in academia and industry while continuing to teach on a part-time basis.
He has been teaching courses in introductory programming, database design, and
data analysis in the Computer Science department at Indiana University/Purdue
University at Indianapolis for the past 8 years.
Contents
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
Visual Basic for Applications with Excel . . . . . . . .1
Chapter 1
Project: Colorful Stats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Installing and Enabling VBA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
The VBA Integrated Development Environment (IDE). . . . . . . . . . . . . . . . . . . . . . . 5
Getting to the IDE from Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Components of the IDE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Programming Components within Excel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Macro Selection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
The Visual Basic Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Getting Help with VBA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
VBA Help. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Constructing the Colorful Stats Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Requirements of the Colorful Stats Program . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Beginning Programs with VBA . . . . . . . . . . . . . . . . .25
Chapter 2
Project: Biorhythms and the Time of Your Life . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Variables, Data Types, and Constants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Declaring Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Simple Input and Output with VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Collecting User Input with InputBox(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Output with MsgBox() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Manipulating Strings with VBA Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Fun with Strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Constructing the Biorhythms and the Time of Your Life Program . . . . . . . . . . 47
Requirements for Biorhythms and the Time of Your Life. . . . . . . . . . . . . . . 48
Designing Biorhythms and the Time of Your Life. . . . . . . . . . . . . . . . . . . . . . 48
Coding Biorhythms and the Time of Your Life. . . . . . . . . . . . . . . . . . . . . . . . . 49
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
vi Microsoft Excel VBA Programming for the Absolute Beginner, Second Edition
Procedures and Conditions . . . . . . . . . . . . . . . . . . .55
Chapter 3
Project: Poker Dice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
VBA Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Event Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Private, Public, and Procedure Scope. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Sub Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Function Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Logical Operators with VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Conditionals and Branching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Constructing the Poker Dice Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Requirements for Poker Dice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Designing Poker Dice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Coding Poker Dice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Loops and Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
Chapter 4
Project: Math Game. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Looping with VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Do Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
For Loops. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Input Validation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Validation with the InputBox() Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Validation with a Spreadsheet Cell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
One-Dimensional Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Multi-Dimensional Arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Dynamic Arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Programming Formulas into Worksheet Cells. . . . . . . . . . . . . . . . . . . . . . . . . . . 120
A1 Style References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
R1C1-Style References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Constructing the Math Game. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Requirements for the Math Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Designing the Math Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Coding the Math Game Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Contents vii
Basic Excel Objects . . . . . . . . . . . . . . . . . . . . . . . . . .149
Chapter 5
Project: Battlecell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
VBA and Object-Oriented Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Objects Defined. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
VBA Collection Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
The Object Browser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Top-Level Excel Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
The Application Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
The Workbook and Window Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
The Worksheet Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
The Range Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Working with Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Constructing Battlecell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Requirements for Battlecell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Designing Battlecell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Coding Battlecell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
VBA UserForms and Additional Controls . . . .207
Chapter 6
Project: Blackjack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Designing Forms with VBA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Adding a Form to a Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Components of the UserForm Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Adding ActiveX Controls to a Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Showing and Hiding Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Modal Forms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Designing Custom Dialog Boxes Using Forms . . . . . . . . . . . . . . . . . . . . . . . . 215
Derived Data Types in VBA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Defining Custom Data Types in VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Defining Enumerated Types in VBA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Chapter Project: Blackjack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Requirements for Blackjack. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Designing Blackjack. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Writing the Code for Blackjack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
viii Microsoft Excel VBA Programming for the Absolute Beginner, Second Edition
Error Handling, Debugging,
Chapter 7
and Basic File I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . .269
Project: Word Find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Error Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Using the On Error Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Debugging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Break Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
The Immediate Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
The Watch Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
The Locals Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
File Input and Output (I/O). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
File I/O Using Workbook and Worksheet Objects . . . . . . . . . . . . . . . . . . . . . 281
Using VBA File I/O Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Chapter Project: Word Find. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Requirements for Word Find. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Designing Word Find. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Writing the Code for Word Find. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Using XML with Excel-VBA Projects . . . . . . . . . .329
Chapter 8
Project: Revisiting the Math Game. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Introduction to XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
What Is XML?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
XML Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
XML Schemas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
XML Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
XML and Excel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
XML and VBA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
The XmlMap Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Chapter Project: The Math Game. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Requirements for the Math Game Program. . . . . . . . . . . . . . . . . . . . . . . . . . 350
Designing the Math Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Coding the Math Game Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Contents ix
Excel Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .377
Chapter 9
Project: The Alienated Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
The Chart Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Accessing Existing Charts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Manipulating Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Creating Charts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
Chart Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Chapter Project: The Alienated Game. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Requirements for the Alienated Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Designing the Alienated Game. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Coding the Alienated Game. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
VBA Shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .427
Chapter 10
Project: Excetris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
The Shapes Collection and Shape Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Manipulating a Shape Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
The ShapeRange Collection Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Activating Shape Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
The OLEObjects Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Chapter Project: Excetris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Requirements for Excetris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Designing Excetris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Coding Excetris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
A Final Word. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .473
Description:Java is an object-oriented language that is extremely popular with programmers and Web developers. This beginner-level book teaches readers the fundamental programming concepts they need to grasp in order to learn any computer language. The unique approach covers the versatility and extensibility of