Tải bản đầy đủ (.pdf) (835 trang)

microsoft office 2003 application development all-in-one desk reference for dummies

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (12.24 MB, 835 trang )

by Richard Mansfield
Office 2003
Application
Development
ALL-IN-ONE DESK REFERENCE
FOR
DUMmIES

00a_570676 ffirs.qxd 6/4/04 9:49 PM Page i
Office 2003 Application Development All-in-One Desk Reference For Dummies
®
Published by
Wiley Publishing, Inc.
111 River Street
Hoboken, NJ 07030-5774
Copyright © 2004 by Wiley Publishing, Inc., Indianapolis, Indiana
Published by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or
by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permit-
ted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written
permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the
Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-
8600. Requests to the Publisher for permission should be addressed to the Legal Department, Wiley
Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355,
e-mail:
Trademarks: Wiley, the Wiley Publishing logo, For Dummies, the Dummies Man logo, A Reference for the
Rest of Us!, The Dummies Way, Dummies Daily, The Fun and Easy Way, Dummies.com, and related trade
dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates in the United
States and other countries, and may not be used without written permission. All other trademarks are the
property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor


mentioned in this book.
LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: THE PUBLISHER AND THE AUTHOR MAKE NO REPRESENTATIONS
OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS WORK AND
SPECIFICALLY DISCLAIM ALL WARRANTIES, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A
PARTICULAR PURPOSE. NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES OR PROMOTIONAL MATERIALS.
THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE SUITABLE FOR EVERY SITUATION. THIS WORK IS
SOLD WITH THE UNDERSTANDING THAT THE PUBLISHER IS NOT ENGAGED IN RENDERING LEGAL, ACCOUNTING,
OR OTHER PROFESSIONAL SERVICES. IF PROFESSIONAL ASSISTANCE IS REQUIRED, THE SERVICES OF A COMPE-
TENT PROFESSIONAL PERSON SHOULD BE SOUGHT. NEITHER THE PUBLISHER NOR THE AUTHOR SHALL BE LIABLE
FOR DAMAGES ARISING HEREFROM. THE FACT THAT AN ORGANIZATION OR WEBSITE IS REFERRED TO IN THIS
WORK AS A CITATION AND/OR A POTENTIAL SOURCE OF FURTHER INFORMATION DOES NOT MEAN THAT THE
AUTHOR OR THE PUBLISHER ENDORSES THE INFORMATION THE ORGANIZATION OR WEBSITE MAY PROVIDE OR
RECOMMENDATIONS IT MAY MAKE. FURTHER, READERS SHOULD BE AWARE THAT INTERNET WEBSITES LISTED IN
THIS WORK MAY HAVE CHANGED OR DISAPPEARED BETWEEN WHEN THIS WORK WAS WRITTEN AND WHEN IT
IS READ.
For general information on our other products and services or to obtain technical support, please con-
tact our Customer Care Department within the U.S. at 800-762-2974, outside the U.S. at 317-572-3993, or
fax 317-572-4002.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may
not be available in electronic books.
Library of Congress Control Number: 2004103152
ISBN: 0-7645-7067-6
Manufactured in the United States of America
10 9 8 7 6 5 4 3 2 1
1B/ST/QW/QU/IN
00a_570676 ffirs.qxd 6/4/04 9:49 PM Page ii
About the Author
Richard Mansfield’s recent titles include Visual Basic .NET All-in-One Desk
Reference For Dummies, Visual Basic .NET Weekend Crash Course, Visual Basic
.NET Database Programming For Dummies, Visual Basic 6 Database Programming

For Dummies (all from Wiley), Hacker Attack (Sybex), and The Wi-Fi Experience:
Everyone’s Guide to 802.11b Wireless Networking (Que).
From 1981 through 1987, he was editor of COMPUTE! magazine, during which
time he wrote hundreds of magazine articles and two columns. From 1987 to
1991, he was editorial director and partner in Signal Research and began writ-
ing books full-time in 1991. He has written 34 computer books since 1982. Of
those, four became bestsellers: Machine Language for Beginners (COMPUTE!
Books), The Second Book of Machine Language (COMPUTE! Books), The Visual
Guide to Visual Basic (Ventana), and The Visual Basic Power Toolkit (Ventana,
with Evangelos Petroutsos). Overall, his books have sold more than 500,000
copies worldwide and have been translated into 11 languages.
00a_570676 ffirs.qxd 6/4/04 9:49 PM Page iii
Dedication
This book is dedicated to my mother, Florence Ethel Mansfield.
Author’s Acknowledgments
I want to thank executive editor Greg Croy for his many kindnesses. I’ve
always enjoyed working with Greg. He knows how to get the best out of
authors (at least this author). Greg’s one of the good guys.
I was also lucky to have two first-rate editors work with me on this book.
Project editor Christopher Morris asked good questions when my writing
needed some questions raised. He also made a number of very useful changes.
He deserves credit for discernment and the high quality of his editing. Copy
editor Teresa Artman kept a close eye on me and asked many good questions
as well. In addition, she ensured consistency of punctuation, diction, and
cross-reference. Thanks to her and Chris for the many improvements they
made to this book.
Technical editor D. J. (Deepesh Jain) reviewed the entire manuscript for tech-
nical problems. For that, I thank him. I’m happy to report that he found few
flaws but certainly glad that we fixed the flaws he did spot.
To these and all the other good people at Wiley who contributed to the book,

my thanks for the time and care they took to ensure quality every step along
the way to publication.
Finally, I want to give special thanks to my agent, Matt Wagner of Waterside
Productions, who has been offering me good advice for over a decade.
00a_570676 ffirs.qxd 6/4/04 9:49 PM Page v
Publisher’s Acknowledgments
We’re proud of this book; please send us your comments through our online registration form
located at
www.dummies.com/register/.
Some of the people who helped bring this book to market include the following:
Acquisitions, Editorial, and
Media Development
Project Editor: Christopher Morris
Executive Editor: Gregory S. Croy
Senior Copy Editor: Teresa Artman
Technical Editor: Wiley-Dreamtech India
Pvt Ltd
Editorial Manager: Kevin Kirschner
Permissions Editor: Laura Moss
Media Development Supervisor:
Richard Graves
Editorial Assistant: Amanda Foxworth
Cartoons: Rich Tennant (
www.the5thwave.com)
Production
Project Coordinator: Adrienne Martinez
Layout and Graphics: Andrea Dahl,
Lauren Goddard, Denny Hager,
Stephanie D. Jumper, Barry Offringa,
Lynsey Osborn, Heather Ryan,

Julie Trippetti
Proofreaders: Andy Hollandbeck, Carl Pierce,
Evelyn Still
Indexer: Joan Griffitts
Publishing and Editorial for Technology Dummies
Richard Swadley, Vice President and Executive Group Publisher
Andy Cummings, Vice President and Publisher
Mary C. Corder, Editorial Director
Publishing for Consumer Dummies
Diane Graves Steele, Vice President and Publisher
Joyce Pepple, Acquisitions Director
Composition Services
Gerry Fahey, Vice President of Production Services
Debbie Stailey, Director of Composition Services
00a_570676 ffirs.qxd 6/4/04 9:49 PM Page vi
Contents at a Glance
Introduction 1
Book I: Office 2003 Essentials 19
Chapter 1: Getting with the Program 21
Chapter 2: Programming Lite: Making the Most of Macros 41
Chapter 3: What’s New in 2003? 59
Book II: Understanding Office Programming 71
Chapter 1: The Basics of Office Development with VBA 73
Chapter 2: Managing Data 89
Chapter 3: Looping and Branching 113
Chapter 4: Managing Files and UserForms 129
Chapter 5: Moving to the Internet 151
Chapter 6: Debugging 171
Book III: Maximizing Word 193
Chapter 1: The Word Object Model 195

Chapter 2: Power Editing 211
Chapter 3: Using XML in Word 229
Chapter 4: The Internet Connection 243
Chapter 5: Advanced Word Macros 255
Book IV: Making the Most of Excel 269
Chapter 1: The Excel Object Model 271
Chapter 2: Handling Excel Events 287
Chapter 3: Advanced Worksheet Editing 295
Chapter 4: Data Diving with Pivot Tables 311
Chapter 5: Business Analysis with Excel 325
Chapter 6: Ten Excellent Excel Macro Techniques 333
Book V: Advanced Access 351
Chapter 1: Access Today 353
Chapter 2: Programming Access 367
Chapter 3: Manipulating Datasets 385
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page vii
Chapter 4: Automating Access 411
Chapter 5: Troubleshooting in Access 419
Chapter 6: Access Macro Techniques 429
Book VI: Exploiting Outlook 439
Chapter 1: Outlook Power Tools 441
Chapter 2: Programming Outlook 453
Chapter 3: Managing Work and Life 467
Chapter 4: Expert E-Mail Administration 483
Chapter 5: Group Management in Outlook 493
Chapter 6: Advanced Outlook Macros 503
Book VII: InterOffice: Working as a Team 517
Chapter 1: Collaboration Features Overview 519
Chapter 2: Managing Shared Documents 531
Chapter 3: XML and Office 541

Chapter 4: Working with InfoPath 561
Chapter 5: Adding Smart Tags 579
Chapter 6: Exploring Smart Documents 591
Chapter 7: Using Project 2003 615
Chapter 8: Employing SharePoint 627
Book VIII: Power Techniques: Advanced Office
Automation, VBA, and .NET 641
Chapter 1: Advanced Office 2003 Programming 643
Chapter 2: Exploring XML 661
Chapter 3: Employing Objects 689
Chapter 4: Advanced Internet VBA 707
Chapter 5: Working with .NET 723
Chapter 6: Using Visual Studio Tools for Office 2003 731
Chapter 7: Office 2003 Security 745
Chapter 8: No More Paranoia: Programmatic Encryption 761
Index 795
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page viii
Table of Contents
Introduction 1
I’ve Seen It All 1
Moving beyond VBA 2
VBA code is legacy code! 3
Recognizing VBA’s excellence 3
Using the framework 4
Understanding managed code 4
About This Book 5
Who Should Read This Book 6
Making do in a shaky economy 6
Plain, clear English 7
How to Use This Book 7

Foolish Assumptions 8
How This Book Is Organized 9
Book I: Office 2003 Essentials 9
Book II: Understanding Office Programming 10
Book III: Maximizing Word 10
Book IV: Making the Most of Excel 10
Book V: Advanced Access 11
Book VI: Exploiting Outlook 11
Book VII: InterOffice: Working as a Team 12
Book VIII: Power Techniques: Advanced Office Automation,
VBA, and .NET 12
Conventions Used in This Book 14
Find All the Code Online 15
The Searchable VBA/VB.NET Dictionary 16
What You Need to Get Started 16
Icons Used in This Book 17
Book I: Office 2003 Essentials 19
Chapter 1: Getting with the Program . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Modifying the User Interface 22
Turning off mini help 22
Modifying menus 24
Editing menus 24
Creating your own menus 26
Customizing shortcut menus 26
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page ix
Office 2003 Application Development All-in-One Desk Reference For Dummies
x
Personalizing Toolbars 29
Adding hyperlinks 29
Vaporizing interface elements programmatically 32

Customizing the Keyboard 37
Restoring Classic Key Behaviors 37
Getting Online Help 38
Chapter 2: Programming Lite: Making the Most of Macros . . . . . . . . .41
Discovering the Pluses of Macros 41
Recording Macros 43
Recording a simple Word macro 43
Understanding the VBA behind recorded macros 46
Using Special Macros in Access 48
Creating an Access macro 48
Converting Access-style macros to VBA 49
Working with Auto Macros 49
Dealing with Macro Security Issues: What You Need to Know 51
Adjusting macro settings 53
Triggering trouble 55
Setting security for your needs 56
Chapter 3: What’s New in 2003? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
Opening Task Panes 60
Security: Adjusting Permissions and Protections 61
SharePoint Everywhere 62
Sharing with Document Workspaces 62
Introducing OneNote 64
XML under Everything 64
Using InfoPath with Word 65
Using InfoPath with Excel 66
Checking Out Outlook’s New Features 68
Book II: Understanding Office Programming 71
Chapter 1: The Basics of Office Development with VBA . . . . . . . . . . .73
Discovering the IDE 73
Navigating the Complex VBA Vocabulary 74

Using AutoListMembers and parameter info 75
Displaying a reminder 75
Using the Object Browser 78
Understanding Objects 79
Should You Go Fully OOP? 81
Encapsulation 82
Instantiation woes 85
Using Events 85
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page x
Table of Contents
xi
Chapter 2: Managing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
Understanding Variables 89
Creating Variables 90
Explicit Variable Declaration and Data Types 91
Using Operators and Expressions 93
Testing True or False 95
Using arithmetic operators 96
Combining Variant variables 97
Using logical operators 98
Operator precedence 100
Variables versus Constants 102
Arrays — Cluster Variables 103
Variable Types 104
Object variables 105
The value of numeric types 105
Scope: The Range of Influence 107
Scope Blowout 110
Chapter 3: Looping and Branching . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113
Going ’Round and ’Round in Loops 113

Using a For Next loop 113
Working with Do Loops 116
Exploring While Wend: A simple loop 118
For Each: Looping in Object Collections 118
Creating a Very Useful File Search Utility 119
Making Decisions via Branching 122
Understanding If Then 123
Multiple choice: The Select Case command 125
Chapter 4: Managing Files and UserForms . . . . . . . . . . . . . . . . . . . . . .129
Communicating with the Hard Drive 129
Loading files in Word and Excel 129
Loading files in Access 130
Saving files 132
Creating User Interfaces 133
The UserForm as a container 133
Displaying a UserForm from a macro 135
Engaging the User with Dialogs 136
Understanding Controls 138
The Label control 140
The TextBox control 141
The ComboBox control 143
The ListBox control 143
The CheckBox control 144
The OptionButton control 145
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xi
Office 2003 Application Development All-in-One Desk Reference For Dummies
xii
The ToggleButton control 146
The Frame control 146
The CommandButton control 147

The TabStrip and MultiPage controls 147
The ScrollBar control 148
The SpinButton control 148
The Image control 149
Chapter 5: Moving to the Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151
Taking Office 2003 to the Web 151
Moving Office to the Web 151
Loading Additional Controls 153
Using the Web Controls 154
Publishing an Excel Spreadsheet 155
Securing a Spreadsheet: Protecting Cells 158
Publishing Access Data 160
Creating a data access page 161
Deploying a data-access page 162
Security: Locks on Top of Locks 165
Securing databases 166
Protecting data-access pages 167
Protecting your code 168
Chapter 6: Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
Typos in Commands and Variables 172
Command Name Errors as Typos 172
Understanding Syntax Errors 173
Handling Runtime Errors 174
How Runtime Errors Occur 174
Using On Error or Try End Try 175
Using On Error (VBA) 175
The VB.NET version: Structured trapping 177
Tracking Down Logic Errors 182
The watchful voyeur technique 183
Using Debug.Write or Debug.Print 185

The Add Watch Technique 186
Setting Breakpoints 186
Setting conditional breakpoints in VBA 187
Setting conditional breakpoints in .NET 188
Alternative Debugging Strategies 189
Step Over 189
Step Out 190
Run to Cursor 190
Set Next Statement 190
Show Next Statement 191
Call Stack 191
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xii
Table of Contents
xiii
Book III: Maximizing Word 193
Chapter 1: The Word Object Model . . . . . . . . . . . . . . . . . . . . . . . . . . . .195
Understanding Objects 195
Dissecting the Document 197
Object variables 198
Editing text 199
Search and Replace 206
The Find Object’s Properties 207
Trapping Events 208
Chapter 2: Power Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211
Selecting Text Quickly 211
Making Snappy Retorts . . . er, Repeats 212
Going Backward with Undo 212
Mastering Quick Maneuvering 213
Viewing a document 213
Searching within a document 214

Introducing Smart Documents 216
Programming with Fields 218
Inserting fields 218
Using the Fields collection 220
Importing Data 221
Mass Mailings with Mail Merge 224
Chapter 3: Using XML in Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229
Introducing Word XML 229
XML in Word 231
Deeper into WordML 234
The Word XML Content Development Kit 234
Programmatic XML 235
Adding a reference 235
Choosing XML Options in Word 236
Working with XML in Word’s Special Editor 238
Creating a practice schema 238
Using the XML Structure Task Pane 239
Building your XML document 239
Chapter 4: The Internet Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
Creating Web Pages in Word 243
Saving as a Web Page: The Three Kinds of Files 244
Adjusting the Web Options Settings 244
Building a Web Page in Word 245
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xiii
Office 2003 Application Development All-in-One Desk Reference For Dummies
xiv
Using the Web Tools Toolbar 248
Adding scrolling text 249
Adding background texture 249
Scripting in Word Web Pages 251

Testing your Web page 254
Understanding scripting’s drawbacks 254
Chapter 5: Advanced Word Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . .255
Writing Macros 101 255
Interception: Modifying Built-In Word Features 256
Using Macros for Specialized Formatting 258
Naming shortcut keys 260
Storing macros 261
Automating Macro Execution 262
The Best Word Macros of All Time 262
Redefining ordinary keys 263
Switching windows and deleting words 264
Assigning normal style 265
Assigning an anti-table macro 266
Toggling revisions 266
Accepting all changes 267
Using WordCount 267
Book IV: Making the Most of Excel 269
Chapter 1: The Excel Object Model . . . . . . . . . . . . . . . . . . . . . . . . . . . .271
Understanding the Excel Object Model 271
How to Use Excel VBA 272
Adding a Workbook 273
Referring to Me 274
Accessing the active cell 275
Creating a New Instance of Excel 275
Using the Application Object 276
Working with Ranges 277
The A1 style reference 278
The R1C1 style reference 279
Using the Offset method 279

Using the Names collection 280
Accessing special ranges 280
Transforming a selection into a range 283
Creating a Chart 284
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xiv
Table of Contents
xv
Chapter 2: Handling Excel Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287
Programming an Excel Event 288
Events in the Worksheet Object 289
Writing Chart Events 290
Writing Application Events 290
Chapter 3: Advanced Worksheet Editing . . . . . . . . . . . . . . . . . . . . . . .295
Importing Data into Excel 295
Importing an Access Database 297
Importing Data from an XML Dataset 299
Programmatically Creating a Dataset 300
Adding Shapes and Pictures 303
Augmenting Find and Replace 305
Understanding Find methods 306
The Replace method 308
Chapter 4: Data Diving with Pivot Tables . . . . . . . . . . . . . . . . . . . . . . .311
What Is a PivotTable? 311
Creating a Pivot Table 313
The Table Pivots 317
Collapsing the pivot table 318
A sudden surprise 320
Creating Instant Pivot Charts 321
Modifying the Data in a PivotTable 322
Refreshing pivot table data 322

Automatically updating pivot table data 323
Chapter 5: Business Analysis with Excel . . . . . . . . . . . . . . . . . . . . . . .325
Seeking Goals with Goal Seek 325
Using Scenarios 327
Displaying Scenarios: Summary Reports 329
Exploiting Solver 329
Chapter 6: Ten Excellent Excel Macro Techniques . . . . . . . . . . . . . .333
Accessing Other Office Applications 333
Understanding Scope 334
UserForms for User Interaction 335
Adding Macros to Worksheet Controls 337
Applying Formatting 339
Adding Controls Programmatically 340
Trapping Keypresses 340
The KeyCodes 342
Detecting Shift, Alt, and Ctrl 345
Selecting from a ListBox 346
Sending a Workbook via E-mail 348
Differentiating Select from Activate 348
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xv
Office 2003 Application Development All-in-One Desk Reference For Dummies
xvi
Book V: Advanced Access 351
Chapter 1: Access Today . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .353
Understanding Access’s Limitations 353
Adding Access 2003 Developer Extensions 354
The Package Wizard and the Custom Startup Wizard 355
The Property Scanner 355
Adding Smart Tags 355
Exploiting XML support 358

Using the new desktop server 361
Using improved data access pages 362
Using augmented forms and reports 364
Chapter 2: Programming Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .367
Introducing Access Objects 367
Adding a New Access Table 369
Understanding Microsoft Database Technologies 370
The great Babel 370
Understanding Open Database Connectivity 371
Access and the Future of Database Management 372
The recent legacy: Data Access Objects (DAO) 373
Understanding ActiveX Data Objects 374
Working with the DataSet Object 377
Collections within collections 377
Substituting names (mapping) 377
What If Someone Else Modifies the Database in the Meantime? 378
Optimism versus pessimism 378
Comparing versions with optimistic concurrency 379
Getting Results in Seven Easy Steps 380
Chapter 3: Manipulating Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . .385
Loading Access Tables into VB.NET Projects 385
Generating a Dataset for an Imported Database 388
Case Study: Maintaining Alphabetical Order 389
Filtering with Select 391
Alphabetizing with Select 394
One is sorted, the other isn’t 395
The overloaded Select method 396
Which version is it? 397
Using the DataView Object 398
Close Relations 399

Master-detail, parent-child 399
Programmatic relations 400
Creating a Dataset with Relations 402
Relations via Wizards and Designers 403
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xvi
Table of Contents
xvii
Using the XML Designer 405
Binding the controls 407
Using Clear 409
Saving an XML Dataset 409
Importing XML by hand 409
Importing XML programmatically 410
Chapter 4: Automating Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .411
Automating How to Access a Form 411
Understanding SendKeys 414
SendKeys and SendWait 415
Sending nonprinting keys 415
Automating the Runtime 417
Displaying a Report 417
Chapter 5: Troubleshooting in Access . . . . . . . . . . . . . . . . . . . . . . . . . .419
Error Management in Access 419
Understanding Option Explicit and Option Strict 420
Locating the Error event, part II 422
Adding a custom error message 423
Sandbox Mode: Adjusting Macro Security 424
Backing Up for Safety 425
Automatic Form and Report Error Checking 426
Chapter 6: Access Macro Techniques . . . . . . . . . . . . . . . . . . . . . . . . . .429
Understanding the Languages of Access 429

Creating Macros without a Recorder 430
Using the Object Browser 432
Using DoCmd 433
Seeing Built-in VBA Language Features 434
Using Classic Error Trapping 435
Using Keyboard Shortcuts 436
Book VI: Exploiting Outlook 439
Chapter 1: Outlook Power Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .441
Using Outlook’s New Reading Pane 441
Adjusting the Nasty Read Filter 442
Managing Multiple Accounts 443
Blocking Spam and Virii 445
Using Encryption 446
Flagging E-mail 448
Using Special Folders 449
Using Twin Calendars 451
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xvii
Office 2003 Application Development All-in-One Desk Reference For Dummies
xviii
Chapter 2: Programming Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .453
Discovering the Outlook Object Model 453
Using the Outlook Object Model 455
Why namespaces? 456
Import or qualify 456
Practical advice about namespaces 458
Using the MAPI Namespace 459
Using Practical VBA in Outlook 460
Handling Events 462
Advanced Searching 462
Chapter 3: Managing Work and Life . . . . . . . . . . . . . . . . . . . . . . . . . . .467

Do This First 467
Sending Access Data into Outlook 468
Displaying a Folder Item 471
Creating a New Contacts Folder 472
Making Mass Modifications 473
Searching Tasks 474
Using Calendar Automation 475
Using non-Outlook e-mail programs 477
AppointmentItem members 479
Outside Outlook: Extracting Data from Outlook to Word 479
Using the New Business Contact Manager 481
Chapter 4: Expert E-Mail Administration . . . . . . . . . . . . . . . . . . . . . . .483
Exploring Messaging Management 483
Routing: Out of Office Assistant 485
Using Multiple E-Mail Accounts 488
Using Exchange Server 489
Working with Send/Receive Groups 490
Avoiding Virii 491
Chapter 5: Group Management in Outlook . . . . . . . . . . . . . . . . . . . . . .493
Using Profiles 493
Sharing Calendars 496
Setting up your own site 496
Using Microsoft’s Free/Busy Service 497
Planning Meetings 498
Responding to invitations 500
Tracking responses 500
Setting up resource responses 501
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xviii
Table of Contents
xix

Chapter 6: Advanced Outlook Macros . . . . . . . . . . . . . . . . . . . . . . . . . .503
Interacting with Other Office Applications 504
Trapping Events 507
Getting incoming mail 507
Intercepting outgoing mail 508
Searching Via Iteration 509
Bringing Macros to the User 511
Creating a UserForm 511
Adding macros to your toolbar 516
Book VII: InterOffice: Working as a Team 517
Chapter 1: Collaboration Features Overview . . . . . . . . . . . . . . . . . . . .519
Exploring OneNote 519
Handwriting in OneNote 520
Recording in OneNote 520
Sending a OneNote document 520
Side notes in OneNote 522
Saving a side note 522
Introducing SharePoint 524
Sharing Outlook Contacts 524
Levels of permission 525
Shared Workspaces 525
Conquering the version problem 526
Establishing a Meeting Workspace 527
Chapter 2: Managing Shared Documents . . . . . . . . . . . . . . . . . . . . . . .531
Restricting Documents with IRM 531
Viewing IRM-protected files 532
Phase Two: Authentication 533
Setting permissions in IRM 534
Using IRM in Outlook 536
Changing Workspace Options 536

Using Word’s Protect Document Feature 537
Managing Versions in Word 539
Chapter 3: XML and Office . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .541
Communicating via a Web Page 541
Adjusting Web page properties 544
Seeing the code 544
Filling out the Web page 545
Scripting 547
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xix
Office 2003 Application Development All-in-One Desk Reference For Dummies
xx
Scripting in Excel 550
The simplest page 552
Scripting errors 553
Debugging Script 554
Typos 556
Impossible commands 557
Using MSXML Core Services 558
Using Forms for Interaction 558
Chapter 4: Working with InfoPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . .561
Introducing InfoPath 561
Understanding How InfoPath Is Divided 562
InfoPath for the designer 562
InfoPath for the user 564
Trying Out InfoPath 565
Designing the main sections of a form 566
Adding controls 567
Seeing the data hierarchy 571
Generating an InfoPath Form from XML 572
Generating a Form from a Database 573

Jumping Java Babies 577
Chapter 5: Adding Smart Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .579
Why Bother Programming Your Own Tags? 580
Understanding Smart Tags 580
Working with a Smart Tag 582
Smart Tags in Word 583
Programming with Smart Tags 584
Experimenting in Excel 584
Manipulating tags in VBA 585
Creating Your Own Smart Tags 585
Creating your first Smart Tag 587
Triggering your tag to test it 588
Feeding data to an Internet site 588
Chapter 6: Exploring Smart Documents . . . . . . . . . . . . . . . . . . . . . . . . .591
First Things First: Downloading the SDK 591
Understanding Smart Documents 592
Security measures 593
Disabling security 594
Deployment simplified 595
The Building Blocks of a Smart Document 596
Programming Smart Documents 596
Simple XML Smart Document programming 597
Attaching a schema 599
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xx
Table of Contents
xxi
Attaching the XML Expansion Pack 601
If you have problems 603
Understanding Smart Document source code 604
Source code inflation goes wild 604

Programming moves to the computer 604
Lists upon lists 605
Modifying the Template 610
Chapter 7: Using Project 2003 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .615
Taking a Look at Project 2003 615
Creating a new project 617
Exploring dependencies in Project 618
Building a Project from Scratch 618
Understanding a Gantt chart 618
Seeing milestones 620
Adding Outlook functionality to a project 621
Managing the Version Problem 623
Chapter 8: Employing SharePoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .627
Deciding Why to Use SharePoint 627
Seeing SharePoint features and integration 628
Setting permissions in SharePoint 630
Installing SharePoint 630
Using The SharePoint Task Pane 630
Exploiting Scalability in SharePoint 631
Finding SharePoint Solutions 632
File sharing and collaboration 632
Intranet capabilities 632
Web page management 633
Using SharePoint with Office 2003 Applications 633
XML and InfoPath 633
Outlook and Document Workspaces 633
OneNote 634
Access 635
Introducing ASP.NET 635
Adding dynamism to Web pages 636

Aiding the programmer 636
Discovering the Purpose of ASP.NET 637
Solved security 638
Segregated source files 639
Seeing the New Advantages of ASP.NET 639
A shared IDE 639
Easier deployment 640
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xxi
Office 2003 Application Development All-in-One Desk Reference For Dummies
xxii
Book VIII: Power Techniques: Advanced Office
Automation, VBA, and .NET 641
Chapter 1: Advanced Office 2003 Programming . . . . . . . . . . . . . . . . . .643
Understanding Class Hierarchies 643
Fighting Class Warfare 644
Properties are methods are properties 645
Tautology runs wild 645
Deciding When to Use VB.NET 646
The Buzzwords 646
Understanding Streams 647
Streaming basics 649
Stream writing 652
Creating Add-Ins 653
Programming your own add-in 653
Adjusting add-in loading behavior 660
Chapter 2: Exploring XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .661
An XML Primer 661
Seeing XML Support in Office 662
Exploiting Extensibility in XML 665
Comparing XML and HTML 666

Deciding Whether to Use an Element or Attribute 667
Understanding XML Terminology 668
Nesting within XML 669
Using data islands in XML 669
Paying attention to XML strictness 669
Seeing the Many Faces of XML 671
Using Namespaces in XML 671
Using explicit declaration 672
Using implicit declaration 672
The Explosion of Schemes 672
Understanding XSD 673
Using XML data types 675
Declaring simple XML data types 677
Specifying Content in an XML Schema 677
Extending a Schema 678
Using the Content Attribute 680
Using Office XML Programming 681
Viewing and applying a schema 683
Dropping an entire XML file 685
Programmatic XML Manipulations 686
Adding a node 686
Adding child nodes and data 686
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xxii
Table of Contents
xxiii
Chapter 3: Employing Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .689
Looking at OOP 689
Understanding Fundamental OOP 690
Employing Practical VBA Objects 691
Distributed instantiation 693

Early and late binding 694
Understanding .NET Data Types 694
Declaring in VBA 695
Discovering the Changes in VB.NET 696
Variants go away 696
DefType commands are gone 696
Mix types within a Dim list 697
You can no longer use ReDim in place of the Dim command 698
Declare the same variable name in more than one location 698
Strongly typed 699
Declaring arrays in .NET 699
Declaring with symbols 699
Changes to values and parameters 699
Bidding farewell to the Set command 700
Using VBA Events 701
Using VBA Collections 702
Using Arrays of Objects 704
Chapter 4: Advanced Internet VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . .707
Looking at Web Services 708
Discovering Why Web Services Matter 709
Understanding distributed computing 710
Discovering the tools for translation 711
Reviewing Web Services Highlights 711
Solving migration issues 712
Solving interoperability issues 713
Seeing How Web Services and XML Dance 713
Seeing Web Services at Work in Office 2003 714
Replacing VBA with VB.NET 714
Adding a Web Service to VBA code 715
Creating Your First Web Service 717

Chapter 5: Working with .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .723
Understanding .NET 723
Seeing the need for .NET 724
Seeing the benefits of VB.NET 725
Using .NET to Facilitate Software Services 726
Using .NET for Internet initiatives 727
Using .NET and databases 727
Finding .NET Programming Help 728
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xxiii
Office 2003 Application Development All-in-One Desk Reference For Dummies
xxiv
Chapter 6: Using Visual Studio Tools for Office 2003 . . . . . . . . . . . . .731
Following Correct Setup 732
If You Have Problems 732
Communicating between .NET and Office Applications 734
Why use VSTO? 735
The five ways to program Office 736
Understanding VSTO 738
Creating Your First Visual Studio Tools for Office Project 739
When to touch the untouchable 742
Adding your code 742
Adjusting .NET security (don’t do this) 744
Chapter 7: Office 2003 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .745
Getting to the Heart of the Problem: People 746
Hope springs eternal 746
Some protection helps 747
Understanding Office 2003 Security Initiatives 747
Using IRM 747
Hiding files 749
Going beyond IRM 750

Setting Up Virus Protection 751
The Security Properties Dialog Box 753
Encryption options 753
File saving considerations 754
Using strong encryption 756
Editing permission settings 757
Removing embarrassing comments 757
Preventing tracing 758
Macro security 758
Avoiding Data Loss 760
Chapter 8: No More Paranoia: Programmatic Encryption . . . . . . . . .761
Securing Your Private Information 762
Comparing the Two Encryption Tactics 762
Understanding Office Encryption 763
Write Your Own Encryption Utility 764
Using RSA 765
Powering Up DES Encryption 769
Making it public 770
Can it be cracked? 771
Choosing a good password 772
Encrypting in VB.NET 772
Streaming the encryption 775
Generating a password 776
Understanding what does a key does 778
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xxiv
Table of Contents
xxv
Finishing the Program 779
Displaying mangled text 780
Trying the program 782

Some Suggested Improvements to the Crypt Program 783
Making it happen 785
Going beyond paranoiac to psychoiac 787
Saving changes 790
Using Streams to Avoid Storing Plaintext on Disk 792
Index 795
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xxv
Office 2003 Application Development All-in-One Desk Reference For Dummies
xxvi
00b_570676 ftoc.qxd 6/4/04 9:50 PM Page xxvi

×