Introduction |
|
1 | (6) |
|
|
1 | (3) |
|
Reducing the Learning Curve |
|
|
1 | (1) |
|
|
2 | (1) |
|
Techie Stuff Needed to Produce Applications |
|
|
2 | (1) |
|
Does This Book Teach Excel? |
|
|
2 | (2) |
|
The Future of VBA and Windows Versions of Excel |
|
|
4 | (1) |
|
|
4 | (1) |
|
Differences for Mac Users |
|
|
4 | (1) |
|
Special Elements and Typographical Conventions |
|
|
5 | (1) |
|
|
5 | (1) |
|
|
5 | (2) |
1 Unleashing the Power of Excel with VBA |
|
7 | (26) |
|
|
7 | (1) |
|
|
7 | (2) |
|
The Macro Recorder Doesn't Work' |
|
|
7 | (1) |
|
No One on the Excel Team Is Focused on the Macro Recorder |
|
|
8 | (1) |
|
Visual Basic Is Not Like BASIC |
|
|
8 | (1) |
|
Good News: Climbing the Learning Curve Is Easy |
|
|
9 | (1) |
|
Great News: Excel with VBA Is Worth the Effort |
|
|
9 | (1) |
|
Knowing Your Tools: The Developer Tab |
|
|
9 | (1) |
|
Understanding Which File Types Allow Macros |
|
|
10 | (2) |
|
|
12 | (2) |
|
Adding a Trusted Location |
|
|
12 | (1) |
|
Using Macro Settings to Enable Macros in Workbooks Outside Trusted Locations |
|
|
13 | (1) |
|
Using Disable All Macros with Notification |
|
|
14 | (1) |
|
Overview of Recording, Storing, and Running a Macro |
|
|
14 | (2) |
|
Filling Out the Record Macro Dialog |
|
|
15 | (1) |
|
|
16 | (3) |
|
Creating a Macro Button on the Ribbon |
|
|
16 | (1) |
|
Creating a Macro Button on the Quick Access Toolbar |
|
|
17 | (1) |
|
Assigning a Macro to a Form Control, Text Box, or Shape |
|
|
18 | (1) |
|
Understanding the VB Editor |
|
|
19 | (2) |
|
|
20 | (1) |
|
|
20 | (1) |
|
|
21 | (1) |
|
Understanding Shortcomings of the Macro Recorder |
|
|
21 | (12) |
|
|
23 | (1) |
|
Examining Code in the Programming Window |
|
|
23 | (2) |
|
Running the Macro on Another Day Produces Undesired Results |
|
|
25 | (1) |
|
Possible Solution: Use Relative References When Recording |
|
|
26 | (4) |
|
Never Use AutoSum or Quick Analysis While Recording a Macro |
|
|
30 | (1) |
|
Four Tips for Using the Macro Recorder |
|
|
31 | (1) |
|
|
32 | (1) |
2 This Sounds Like BASIC, So Why Doesn't It Look Familiar? |
|
33 | (26) |
|
I Can't Understand This Code |
|
|
33 | (1) |
|
Understanding the Parts of VBA "Speech" |
|
|
34 | (3) |
|
|
37 | (2) |
|
VBA Help Files: Using F1 to Find Anything |
|
|
38 | (1) |
|
|
38 | (1) |
|
Examining Recorded Macro Code: Using the VB Editor and Help |
|
|
39 | (4) |
|
|
39 | (1) |
|
|
40 | (3) |
|
Properties Can Return Objects |
|
|
43 | (1) |
|
Using Debugging Tools to Figure Out Recorded Code |
|
|
43 | (7) |
|
|
43 | (2) |
|
More Debugging Options: Breakpoints |
|
|
45 | (1) |
|
Backing Up or Moving Forward in Code |
|
|
45 | (1) |
|
Not Stepping Through Each Line of Code |
|
|
46 | (1) |
|
Querying Anything While Stepping Through Code |
|
|
46 | (3) |
|
Using a Watch to Set a Breakpoint |
|
|
49 | (1) |
|
Using a Watch on an Object |
|
|
49 | (1) |
|
Object Browser: The Ultimate Reference |
|
|
50 | (1) |
|
Seven Tips for Cleaning Up Recorded Code |
|
|
51 | (6) |
|
Tip 1: Don't Select Anything |
|
|
51 | (1) |
|
Tip 2: Use Cells (2 , 5) Because It's More Convenient Than Range ("E2") |
|
|
52 | (1) |
|
Tip 3: Use More Reliable Ways to Find the Last Row |
|
|
52 | (1) |
|
Tip 4: Use Variables to Avoid Hard-Coding Rows and Formulas |
|
|
53 | (1) |
|
Tip 5: Use R1C1 Formulas That Make Your Life Easier |
|
|
54 | (1) |
|
Tip 6: Copy and Paste in a Single Statement |
|
|
54 | (1) |
|
Tip 7: Use With... End With to Perform Multiple Actions |
|
|
54 | (3) |
|
|
57 | (2) |
3 Referring to Ranges |
|
59 | (14) |
|
|
59 | (1) |
|
Syntax for Specifying a Range |
|
|
60 | (1) |
|
|
60 | (1) |
|
Shortcut for Referencing Ranges |
|
|
60 | (1) |
|
Referencing Ranges in Other Sheets |
|
|
61 | (1) |
|
Referencing a Range Relative to Another Range |
|
|
61 | (1) |
|
Using the Cells Property to Select a Range |
|
|
62 | (1) |
|
Using the Offset Property to Refer to a Range |
|
|
63 | (2) |
|
Using the Resize Property to Change the Size of a Range |
|
|
65 | (1) |
|
Using the columns and Rows Properties to Specify a Range |
|
|
66 | (1) |
|
Using the union Method to Join Multiple Ranges |
|
|
66 | (1) |
|
Using the Intersect Method to Create a New Range from Overlapping Ranges |
|
|
67 | (1) |
|
Using the IsEmpty Function to Check Whether a Cell Is Empty |
|
|
67 | (1) |
|
Using the CurrentRegion Property to Select a Data Range |
|
|
68 | (2) |
|
Using the Areas Collection to Return a Noncontiguous Range |
|
|
70 | (1) |
|
|
71 | (1) |
|
|
72 | (1) |
4 Looping and Flow Control |
|
73 | (20) |
|
|
73 | (5) |
|
Using Variables in the For Statement |
|
|
75 | (1) |
|
Variations on the For... Next Loop |
|
|
76 | (1) |
|
Exiting a Loop Early After a Condition Is Met |
|
|
77 | (1) |
|
Nesting One Loop Inside Another Loop |
|
|
78 | (1) |
|
|
78 | (4) |
|
Using the While or Until Clause in Do Loops |
|
|
81 | (1) |
|
|
82 | (4) |
|
|
83 | (3) |
|
Flow Control: Using If... Then... Else and Select Case |
|
|
86 | (5) |
|
Basic Flow Control: If... Then... Else |
|
|
86 | (2) |
|
Using Select Case... End Select for Multiple Conditions |
|
|
88 | (3) |
|
|
91 | (2) |
5 R1C1-Style Formulas |
|
93 | (10) |
|
Referring to Cells: Al Versus R1C1 References |
|
|
93 | (1) |
|
Toggling to R1C1-Style References |
|
|
94 | (1) |
|
Witnessing the Miracle of Excel Formulas |
|
|
95 | (2) |
|
Entering a Formula Once and Copying 1,000 Times |
|
|
95 | (1) |
|
The Secret: It's Not That Amazing |
|
|
96 | (1) |
|
Understanding the R1C1 Reference Style |
|
|
97 | (4) |
|
Using R1C1 with Relative References |
|
|
97 | (1) |
|
Using R1C1 with Absolute References |
|
|
98 | (1) |
|
Using R1C1 with Mixed References |
|
|
98 | (1) |
|
Referring to Entire Columns or Rows with R1C1 Style |
|
|
99 | (1) |
|
Replacing Many Al Formulas with a Single R1C1 Formula |
|
|
99 | (2) |
|
Remembering Column Numbers Associated with Column Letters |
|
|
101 | (1) |
|
Using R1C1 Formulas with Array Formulas |
|
|
101 | (1) |
|
|
102 | (1) |
6 Creating and Manipulating Names in VBA |
|
103 | (12) |
|
Global Versus Local Names |
|
|
103 | (1) |
|
|
104 | (1) |
|
|
105 | (1) |
|
|
106 | (1) |
|
|
106 | (5) |
|
|
106 | (1) |
|
|
107 | (1) |
|
|
108 | (1) |
|
|
109 | (1) |
|
|
109 | (1) |
|
|
110 | (1) |
|
|
111 | (1) |
|
Checking for the Existence of a Name |
|
|
111 | (3) |
|
|
114 | (1) |
7 Event Programming |
|
115 | (16) |
|
|
115 | (1) |
|
|
116 | (1) |
|
|
116 | (1) |
|
|
117 | (1) |
|
|
117 | (3) |
|
Workbook-Level Sheet and Chart Events |
|
|
119 | (1) |
|
|
120 | (3) |
|
|
123 | (2) |
|
|
123 | (1) |
|
Embedded Chart and Chart Sheet Events |
|
|
124 | (1) |
|
|
125 | (5) |
|
|
130 | (1) |
8 Arrays |
|
131 | (8) |
|
|
131 | (1) |
|
Declaring a Multidimensional Array |
|
|
132 | (1) |
|
|
133 | (1) |
|
Retrieving Data from an Array |
|
|
134 | (1) |
|
Using Arrays to Speed Up Code |
|
|
135 | (1) |
|
|
136 | (1) |
|
|
137 | (1) |
|
|
138 | (1) |
9 Creating Classes and Collections |
|
139 | (18) |
|
|
139 | (1) |
|
Trapping Application and Embedded Chart Events |
|
|
140 | (3) |
|
|
140 | (1) |
|
|
141 | (2) |
|
|
143 | (2) |
|
|
145 | (1) |
|
|
145 | (5) |
|
|
146 | (1) |
|
Creating a Collection in a Standard Module |
|
|
146 | (2) |
|
Creating a Collection in a Class Module |
|
|
148 | (2) |
|
|
150 | (3) |
|
Using User-Defined Types to Create Custom Properties |
|
|
153 | (3) |
|
|
156 | (1) |
10 Userforms: An Introduction |
|
157 | (20) |
|
|
157 | (1) |
|
|
158 | (1) |
|
|
158 | (1) |
|
Calling and Hiding a Userform |
|
|
159 | (1) |
|
|
160 | (2) |
|
|
160 | (2) |
|
|
162 | (1) |
|
Using Basic Form Controls |
|
|
163 | (11) |
|
Using Labels, Text Boxes, and Command Buttons |
|
|
163 | (2) |
|
Deciding Whether to Use List Boxes or Combo Boxes in Forms |
|
|
165 | (2) |
|
Adding Option Buttons to a Userform |
|
|
167 | (2) |
|
Adding Graphics to a Userform |
|
|
169 | (1) |
|
Using a Spin Button on a Userform |
|
|
170 | (1) |
|
Using the muitiPage Control to Combine Forms |
|
|
171 | (3) |
|
|
174 | (1) |
|
|
174 | (1) |
|
|
175 | (1) |
|
|
176 | (1) |
11 Data Mining with Advanced Filter |
|
177 | (34) |
|
Replacing a Loop with AutoFilter |
|
|
177 | (7) |
|
Using AutoFilter Techniques |
|
|
180 | (3) |
|
Selecting Visible Cells Only |
|
|
183 | (1) |
|
Advanced Filter—Easier in VBA Than in Excel |
|
|
184 | (2) |
|
Using the Excel Interface to Build an Advanced Filter |
|
|
185 | (1) |
|
Using Advanced Filter to Extract a Unique List of Values |
|
|
186 | (6) |
|
Extracting a Unique List of Values with the User Interface |
|
|
186 | (1) |
|
Extracting a Unique List of Values with VBA Code |
|
|
187 | (4) |
|
Getting Unique Combinations of Two or More Fields |
|
|
191 | (1) |
|
Using Advanced Filter with Criteria Ranges |
|
|
192 | (9) |
|
Joining Multiple Criteria with a Logical OR |
|
|
193 | (1) |
|
Joining Two Criteria with a Logical AND |
|
|
194 | (1) |
|
Other Slightly Complex Criteria Ranges |
|
|
194 | (1) |
|
The Most Complex Criteria: Replacing the List of Values with a Condition Created as the Result of a Formula |
|
|
194 | (7) |
|
Using Filter in Place in Advanced Filter |
|
|
201 | (2) |
|
Catching No Records When Using a Filter in Place |
|
|
202 | (1) |
|
Showing All Records After Running a Filter in Place |
|
|
202 | (1) |
|
The Real Workhorse: xlFilterCopy with All Records Rather Than Unique Records Only |
|
|
203 | (7) |
|
|
203 | (1) |
|
Copying a Subset of Columns and Reordering |
|
|
204 | (5) |
|
Excel in Practice: Turning Off a Few Drop-downs in the AutoFilter |
|
|
209 | (1) |
|
|
210 | (1) |
12 Using VBA to Create Pivot Tables |
|
211 | (40) |
|
Understanding How Pivot Tables Evolved Over Various Excel Versions |
|
|
211 | (1) |
|
While Building a Pivot Table in Excel VBA |
|
|
212 | (7) |
|
|
212 | (1) |
|
Creating and Configuring the Pivot Table |
|
|
213 | (1) |
|
Adding Fields to the Data Area |
|
|
214 | (2) |
|
Learning Why You Cannot Move or Change Part of a Pivot Report |
|
|
216 | (1) |
|
Determining the Size of a Finished Pivot Table to Convert the Pivot Table to Values |
|
|
217 | (2) |
|
Using Advanced Pivot Table Features |
|
|
219 | (9) |
|
Using Multiple Value Fields |
|
|
220 | (1) |
|
Grouping Daily Dates to Months, Quarters, or Years |
|
|
221 | (1) |
|
Changing the Calculation to Show Percentages |
|
|
222 | (3) |
|
Eliminating Blank Cells in the Values Area |
|
|
225 | (1) |
|
Controlling the Sort Order with AutoSort |
|
|
225 | (1) |
|
Replicating the Report for Every Product |
|
|
225 | (3) |
|
|
228 | (14) |
|
Manually Filtering Two or More Items in a Pivot Field |
|
|
228 | (1) |
|
Using the Conceptual Filters |
|
|
229 | (4) |
|
|
233 | (2) |
|
Setting Up Slicers to Filter a Pivot Table |
|
|
235 | (4) |
|
Setting Up a Timeline to Filter an Excel 2016 Pivot Table |
|
|
239 | (3) |
|
Using the Data Model in Excel 2016 |
|
|
242 | (5) |
|
Adding Both Tables to the Data Model |
|
|
242 | (1) |
|
Creating a Relationship Between the Two Tables |
|
|
243 | (1) |
|
Defining the PivotCache and Building the Pivot Table |
|
|
243 | (1) |
|
Adding Model Fields to the Pivot Table |
|
|
244 | (1) |
|
Adding Numeric Fields to the Values Area |
|
|
244 | (1) |
|
|
245 | (2) |
|
Using Other Pivot Table Features |
|
|
247 | (3) |
|
|
247 | (1) |
|
|
247 | (1) |
|
Using ShowDetail to Filter a Record Set |
|
|
248 | (1) |
|
Changing the Layout from the Design Tab |
|
|
248 | (1) |
|
Settings for the Report Layout |
|
|
248 | (1) |
|
Suppressing Subtotals for Multiple Row Fields |
|
|
249 | (1) |
|
|
250 | (1) |
13 Excel Power |
|
251 | (32) |
|
|
251 | (4) |
|
Listing Files in a Directory |
|
|
251 | (3) |
|
Importing and Deleting a CSV File |
|
|
254 | (1) |
|
Reading a Text File into Memory and Parsing |
|
|
254 | (1) |
|
Combining and Separating Workbooks |
|
|
255 | (5) |
|
Separating Worksheets into Workbooks |
|
|
255 | (1) |
|
|
256 | (1) |
|
Filtering and Copying Data to Separate Worksheets |
|
|
257 | (1) |
|
Copying Data to Separate Worksheets Without Using Filter |
|
|
258 | (1) |
|
Exporting Data to an XML File |
|
|
259 | (1) |
|
Working with Cell Comments |
|
|
260 | (3) |
|
|
260 | (1) |
|
Placing a Chart in a Comment |
|
|
261 | (2) |
|
|
263 | (5) |
|
Using Conditional Formatting to Highlight the Selected Cell |
|
|
263 | (1) |
|
Highlighting the Selected Cell Without Using Conditional Formatting |
|
|
264 | (1) |
|
Selecting/Deselecting Noncontiguous Cells |
|
|
265 | (2) |
|
Creating a Hidden Log File |
|
|
267 | (1) |
|
|
268 | (12) |
|
Creating an Excel State Class Module |
|
|
268 | (2) |
|
Drilling-Down a Pivot Table |
|
|
270 | (1) |
|
Filtering an OLAP Pivot Table by a List of Items |
|
|
271 | (2) |
|
Creating a Custom Sort Order |
|
|
273 | (1) |
|
Creating a Cell Progress Indicator |
|
|
274 | (1) |
|
Using a Protected Password Box |
|
|
275 | (2) |
|
|
277 | (2) |
|
Selecting with SpecialCells |
|
|
279 | (1) |
|
Resetting a Table's Format |
|
|
279 | (1) |
|
|
280 | (2) |
|
Getting Historical Stock/Fund Quotes |
|
|
280 | (1) |
|
Using VBA Extensibility to Add Code to New Workbooks |
|
|
281 | (1) |
|
|
282 | (1) |
14 Sample User-Defined Functions |
|
283 | (26) |
|
Creating User-Defined Functions |
|
|
283 | (3) |
|
|
286 | (1) |
|
Useful Custom Excel Functions |
|
|
286 | (22) |
|
Setting the Current Workbook's Name in a Cell |
|
|
286 | (1) |
|
Setting the Current Workbook's Name and File Path in a Cell |
|
|
287 | (1) |
|
Checking Whether a Workbook Is Open |
|
|
287 | (1) |
|
Checking Whether a Sheet in an Open Workbook Exists |
|
|
287 | (1) |
|
Counting the Number of Workbooks in a Directory |
|
|
288 | (1) |
|
|
289 | (2) |
|
Retrieving Date and Time of Last Save |
|
|
291 | (1) |
|
Retrieving Permanent Date and Time |
|
|
291 | (1) |
|
Validating an Email Address |
|
|
292 | (1) |
|
Summing Cells Based on Interior Color |
|
|
293 | (1) |
|
|
294 | (1) |
|
Removing Duplicates from a Range |
|
|
295 | (1) |
|
Finding the First Nonzero-Length Cell in a Range |
|
|
296 | (1) |
|
Substituting Multiple Characters |
|
|
297 | (1) |
|
Retrieving Numbers from Mixed Text |
|
|
298 | (1) |
|
Converting Week Number into Date |
|
|
299 | (1) |
|
Extracting a Single Element from a Delimited String |
|
|
300 | (1) |
|
Sorting and Concatenating |
|
|
300 | (2) |
|
Sorting Numeric and Alpha Characters |
|
|
302 | (1) |
|
Searching for a String Within Text |
|
|
303 | (1) |
|
Reversing the Contents of a Cell |
|
|
304 | (1) |
|
Returning the Addresses of Duplicate Max Values |
|
|
304 | (1) |
|
Returning a Hyperlink Address |
|
|
305 | (1) |
|
Returning the Column Letter of a Cell Address |
|
|
306 | (1) |
|
|
306 | (1) |
|
Using Select Case on a Worksheet |
|
|
307 | (1) |
|
|
308 | (1) |
15 Creating Charts |
|
309 | (24) |
|
Contrasting the Good and Bad VBA to Create Charts |
|
|
309 | (1) |
|
Planning for More Charts to Break |
|
|
310 | (1) |
|
Using .AddChart 2 to Create a Chart |
|
|
311 | (1) |
|
Understanding Chart Styles |
|
|
312 | (3) |
|
|
315 | (12) |
|
Referring to a Specific Chart |
|
|
315 | (1) |
|
|
316 | (1) |
|
|
317 | (1) |
|
|
318 | (1) |
|
Using SetElement to Emulate Changes from the Plus Icon |
|
|
319 | (5) |
|
Using the Format Method to Micromanage Formatting Options |
|
|
324 | (1) |
|
Changing an Object's Fill |
|
|
325 | (2) |
|
|
327 | (1) |
|
|
327 | (3) |
|
Exporting a Chart as a Graphic |
|
|
330 | (1) |
|
Considering Backward Compatibility |
|
|
331 | (1) |
|
|
331 | (2) |
16 Data Visualizations and Conditional Formatting |
|
333 | (22) |
|
VBA Methods and Properties for Data Visualizations |
|
|
334 | (1) |
|
Adding Data Bars to a Range |
|
|
335 | (4) |
|
Adding Color Scales to a Range |
|
|
339 | (2) |
|
Adding Icon Sets to a Range |
|
|
341 | (2) |
|
|
341 | (2) |
|
Specifying Ranges for Each Icon |
|
|
343 | (1) |
|
Using Visualization Tricks |
|
|
343 | (4) |
|
Creating an Icon Set for a Subset of a Range |
|
|
344 | (1) |
|
Using Two Colors of Data Bars in a Range |
|
|
345 | (2) |
|
Using Other Conditional Formatting Methods |
|
|
347 | (7) |
|
Formatting Cells That Are Above or Below Average |
|
|
348 | (1) |
|
Formatting Cells in the Top 10 or Bottom 5 |
|
|
348 | (1) |
|
Formatting Unique or Duplicate Cells |
|
|
349 | (1) |
|
Formatting Cells Based on Their Value |
|
|
350 | (1) |
|
Formatting Cells That Contain Text |
|
|
351 | (1) |
|
Formatting Cells That Contain Dates |
|
|
351 | (1) |
|
Formatting Cells That Contain Blanks or Errors |
|
|
351 | (1) |
|
Using a Formula to Determine Which Cells to Format |
|
|
352 | (1) |
|
Using the New NumberFormat Property |
|
|
353 | (1) |
|
|
354 | (1) |
17 Dashboarding with Sparklines in Excel 2016 |
|
355 | (20) |
|
|
356 | (1) |
|
|
357 | (4) |
|
|
361 | (8) |
|
|
361 | (3) |
|
|
364 | (1) |
|
Formatting Sparkline Elements |
|
|
365 | (3) |
|
Formatting Win/Loss Charts |
|
|
368 | (1) |
|
|
369 | (5) |
|
Observations About Sparklines |
|
|
369 | (1) |
|
Creating Hundreds of Individual Sparklines in a Dashboard |
|
|
370 | (4) |
|
|
374 | (1) |
18 Reading from and Writing to the Web |
|
375 | (16) |
|
Getting Data from the Web |
|
|
375 | (6) |
|
Building Multiple Queries with VBA |
|
|
377 | (1) |
|
Finding Results from Retrieved Data |
|
|
378 | (1) |
|
|
379 | (1) |
|
Examples of Scraping Websites Using Web Queries |
|
|
380 | (1) |
|
Using Application. OnTime to Periodically Analyze Data |
|
|
381 | (4) |
|
Using Ready Mode for Scheduled Procedures |
|
|
381 | (1) |
|
Specifying a Window of Time for an Update |
|
|
382 | (1) |
|
Canceling a Previously Scheduled Macro |
|
|
382 | (1) |
|
Closing Excel Cancels All Pending Scheduled Macros |
|
|
383 | (1) |
|
Scheduling a Macro to Run x Minutes in the Future |
|
|
383 | (1) |
|
Scheduling a Verbal Reminder |
|
|
383 | (1) |
|
Scheduling a Macro to Run Every Two Minutes |
|
|
384 | (1) |
|
Publishing Data to a Web Page |
|
|
385 | (5) |
|
Using VBA to Create Custom Web Pages |
|
|
386 | (1) |
|
Using Excel as a Content Management System |
|
|
387 | (2) |
|
|
389 | (1) |
|
|
390 | (1) |
19 Text File Processing |
|
391 | (14) |
|
Importing from Text Files |
|
|
391 | (11) |
|
Importing Text Files with Fewer Than 1,048,576 Rows |
|
|
391 | (7) |
|
Dealing with Text Files with More Than 1,048,576 Rows |
|
|
398 | (4) |
|
|
402 | (1) |
|
|
403 | (2) |
20 Automating Word |
|
405 | (18) |
|
Using Early Binding to Reference a Word Object |
|
|
406 | (2) |
|
Using Late Binding to Reference a Word Object |
|
|
408 | (1) |
|
Using the New Keyword to Reference a Word Application |
|
|
409 | (1) |
|
Using the CreateObject Function to Create a New Instance of an Object |
|
|
409 | (1) |
|
Using the GetObject Function to Reference an Existing Instance of Word |
|
|
410 | (1) |
|
|
411 | (2) |
|
Using the Watches Window to Retrieve the Real Value of a Constant |
|
|
411 | (1) |
|
Using the Object Browser to Retrieve the Real Value of a Constant |
|
|
412 | (1) |
|
Understanding Word's Objects |
|
|
413 | (7) |
|
|
413 | (2) |
|
|
415 | (1) |
|
|
416 | (3) |
|
|
419 | (1) |
|
Controlling Form Fields in Word |
|
|
420 | (2) |
|
|
422 | (1) |
21 Using Access as a Back End to Enhance Multiuser Access to Data |
|
423 | (16) |
|
|
424 | (2) |
|
|
426 | (1) |
|
Adding a Record to a Database |
|
|
427 | (2) |
|
Retrieving Records from a Database |
|
|
429 | (2) |
|
Updating an Existing Record |
|
|
431 | (2) |
|
|
433 | (1) |
|
Summarizing Records via ADO |
|
|
433 | (1) |
|
|
434 | (3) |
|
Checking for the Existence of Tables |
|
|
434 | (1) |
|
Checking for the Existence of a Field |
|
|
435 | (1) |
|
Adding a Table On the Fly |
|
|
436 | (1) |
|
Adding a Field On the Fly |
|
|
436 | (1) |
|
|
437 | (1) |
|
|
438 | (1) |
22 Advanced Userform Techniques |
|
439 | (24) |
|
Using the UserForm Toolbar in the Design of Controls on Userforms |
|
|
439 | (1) |
|
|
440 | (7) |
|
|
440 | (7) |
|
|
447 | (2) |
|
|
449 | (1) |
|
Using Hyperlinks in Userforms |
|
|
449 | (1) |
|
Adding Controls at Runtime |
|
|
450 | (6) |
|
Resizing the Userform On the Fly |
|
|
452 | (1) |
|
Adding a Control On the Fly |
|
|
452 | (1) |
|
|
452 | (1) |
|
|
453 | (1) |
|
Adding an Image On the Fly |
|
|
453 | (1) |
|
|
454 | (2) |
|
Adding Help to a Userform |
|
|
456 | (4) |
|
|
456 | (1) |
|
|
457 | (1) |
|
|
457 | (1) |
|
Coloring the Active Control |
|
|
457 | (3) |
|
Creating Transparent Forms |
|
|
460 | (1) |
|
|
461 | (2) |
23 The Windows Application Programming Interface (API) |
|
463 | (10) |
|
Understanding an API Declaration |
|
|
464 | (1) |
|
|
465 | (1) |
|
Making 32-Bit- and 64-Bit-Compatible API Declarations |
|
|
465 | (2) |
|
|
467 | (5) |
|
Retrieving the Computer Name |
|
|
467 | (1) |
|
Checking Whether an Excel File Is Open on a Network |
|
|
467 | (1) |
|
Retrieving Display-Resolution Information |
|
|
468 | (1) |
|
Customizing the About Dialog |
|
|
469 | (1) |
|
Disabling the X for Closing a Userform |
|
|
470 | (1) |
|
|
471 | (1) |
|
|
472 | (1) |
|
|
472 | (1) |
24 Handling Errors |
|
473 | (14) |
|
What Happens When an Error Occurs? |
|
|
473 | (4) |
|
A Misleading Debug Error in Userform Code |
|
|
475 | (2) |
|
Basic Error Handling with the On Error GoTo Syntax |
|
|
477 | (1) |
|
|
478 | (3) |
|
Handling Errors by Choosing to Ignore Them |
|
|
479 | (2) |
|
Suppressing Excel Warnings |
|
|
481 | (1) |
|
Encountering Errors on Purpose |
|
|
481 | (1) |
|
|
481 | (1) |
|
Errors While Developing Versus Errors Months Later |
|
|
482 | (2) |
|
Runtime Error 9: Subscript Out of Range |
|
|
482 | (1) |
|
Runtime Error 1004: Method Range of Object Global Failed |
|
|
483 | (1) |
|
The Ills of Protecting Code |
|
|
484 | (1) |
|
More Problems with Passwords |
|
|
485 | (1) |
|
Errors Caused by Different Versions |
|
|
486 | (1) |
|
|
486 | (1) |
25 Customizing the Ribbon to Run Macros |
|
487 | (22) |
|
Where to Add Code: The customui Folder and File |
|
|
488 | (1) |
|
Creating a Tab and a Group |
|
|
489 | (1) |
|
Adding a Control to a Ribbon |
|
|
490 | (6) |
|
Accessing the File Structure |
|
|
496 | (1) |
|
Understanding the RELS File |
|
|
496 | (1) |
|
Renaming an Excel File and Opening a Workbook |
|
|
497 | (1) |
|
|
497 | (3) |
|
Using Microsoft Office Icons on a Ribbon |
|
|
498 | (1) |
|
Adding Custom Icon Images to a Ribbon |
|
|
499 | (1) |
|
Troubleshooting Error Messages |
|
|
500 | (4) |
|
The Attribute "Attribute Name" on the Element "customui Ribbon" Is Not Defined in the DTD/Schema |
|
|
500 | (1) |
|
Illegal Qualified Name Character |
|
|
501 | (1) |
|
Element "customui Tag Name" Is Unexpected According to Content Model of Parent Element "customui Tag Name" |
|
|
501 | (1) |
|
Found a Problem with Some Content |
|
|
502 | (1) |
|
Wrong Number of Arguments or Invalid Property Assignment |
|
|
503 | (1) |
|
Invalid File Format or File Extension |
|
|
503 | (1) |
|
|
503 | (1) |
|
Other Ways to Run a Macro |
|
|
504 | (4) |
|
Using a Keyboard Shortcut to Run a Macro |
|
|
504 | (1) |
|
Attaching a Macro to a Command Button |
|
|
504 | (1) |
|
Attaching a Macro to a Shape |
|
|
505 | (1) |
|
Attaching a Macro to an ActiveX Control |
|
|
506 | (1) |
|
Running a Macro from a Hyperlink |
|
|
507 | (1) |
|
|
508 | (1) |
26 Creating Add-ins |
|
509 | (8) |
|
Characteristics of Standard Add-ins |
|
|
509 | (1) |
|
Converting an Excel Workbook to an Add-in |
|
|
510 | (2) |
|
Using Save As to Convert a File to an Add-in |
|
|
511 | (1) |
|
Using the VB Editor to Convert a File to an Add-in |
|
|
512 | (1) |
|
Having a Client Install an Add-in |
|
|
512 | (2) |
|
|
514 | (1) |
|
|
514 | (1) |
|
Using a Hidden Workbook as an Alternative to an Add-in |
|
|
515 | (1) |
|
|
516 | (1) |
27 An Introduction to Creating Office Add-ins |
|
517 | (22) |
|
Creating Your First Office Add-in—Hello World |
|
|
517 | (4) |
|
Adding Interactivity to an Office Add-in |
|
|
521 | (3) |
|
A Basic Introduction to HTML |
|
|
524 | (1) |
|
|
524 | (1) |
|
|
524 | (1) |
|
|
525 | (1) |
|
Using XML to Define an Office Add-in |
|
|
525 | (1) |
|
Using JavaScript to Add Interactivity to an Office Add-in |
|
|
526 | (10) |
|
The Structure of a Function |
|
|
526 | (1) |
|
|
527 | (1) |
|
|
528 | (1) |
|
|
528 | (1) |
|
|
529 | (1) |
|
How to Do an if Statement in JavaScript |
|
|
530 | (1) |
|
How to Do a select... Case Statement in JavaScript |
|
|
530 | (2) |
|
How to Do a For each... next Statement in JavaScript |
|
|
532 | (1) |
|
Mathematical, Logical, and Assignment Operators |
|
|
532 | (2) |
|
Math Functions in JavaScript |
|
|
534 | (1) |
|
Writing to the Content Pane or Task Pane |
|
|
535 | (1) |
|
JavaScript Changes for Working in an Office Add-in |
|
|
535 | (1) |
|
Napa Office 365 Development Tools |
|
|
536 | (1) |
|
|
537 | (2) |
28 What's New in Excel 2016 and What's Changed |
|
539 | (6) |
|
If It Has Changed in the Front End, It Has Changed in VBA |
|
|
539 | (3) |
|
|
539 | (1) |
|
Single Document Interface (SDI) |
|
|
540 | (1) |
|
|
541 | (1) |
|
|
541 | (1) |
|
|
541 | (1) |
|
|
541 | (1) |
|
|
542 | (1) |
|
Learning the New Objects and Methods |
|
|
542 | (1) |
|
|
542 | (2) |
|
Using the Version Property |
|
|
543 | (1) |
|
Using the Excel8CompatibilityMode Property |
|
|
543 | (1) |
|
|
544 | (1) |
Index |
|
545 | |