- ホーム
- > 洋書
- > 英文書
- > Computer / Spreadsheets
Full Description
AUTOMATE REPORTSBUILD FUNCTIONSVISUALIZE DATAWRITE FAST, RELIABLE SCRIPTSMicrosoft Excel 2010VBA AND MACROS:SAVE TIME AND SUPERCHARGE EXCEL 2010 WITH VBA AND MACROS!Use Excel 2010 VBA and macros to automate virtually any routine task, and save yourself hours, days, maybe even weeks. Then learn how to make Excel do things you thought were simply impossible! This book reveals scripting techniques you won't find anywhere else and shows you how to create automated reports that are amazingly powerful and useful. It helps you instantly visualize information so you can understand and act on it. It also shows you how to capture data from anywhere and use it anywhere, and helps you automate Excel 2010's most powerful new features. Learning advanced Excel scripting has never been easier. You'll find simple, step-by-step instructions, real-world examples and case studies, and 50 workbooks packed with bonus examples, macros, and solutions, straight from MrExcel.* Work efficiently with ranges, cells, and R1C1-style formulas* Build super-fast applications with arrays* Customize the Excel 2010 Ribbon to run your macros* Write Excel 2010 VBA code that works on older versions of Excel* Create custom dialog boxes to collect information from your users* Use error handling to make your VBA scripts more resilient* Use Web queries to import data from virtually any online source* Master advanced techniques such as classes and collections* Use Excel VBA to control other Office programs...even control Windows itself, via the Windows API* Create add-ins to share or sell your programsAbout MrExcel Library: Every book in the MrExcel Library pinpoints a specific set of crucial Excel tasks and presents focused skills and examples for performing them rapidly and effectively. Selected by Bill Jelen, Microsoft Excel MVP and mastermind behind the leading Excel solutions website MrExcel.com, these books will* Dramatically increase your productivity-saving you 50 hours a year or more* Present proven, creative strategies for solving real-world problems* Show you how to get great results, no matter how much data you have* Help you avoid critical mistakes that even experienced users make
Contents
IntroductionChapter 1 Unleash the Power of Excel with VBAThe Power of ExcelBarriers to EntryThe Macro Recorder Doesn't WorkVisual Basic Is Not Like BASICGood News: Climbing the Learning Curve Is EasyGreat News: Excel with VBA Is Worth the EffortKnowing Your Tools: The Developer TabMacro SecurityAdding a Trusted LocationUsing Macro Settings to Enable Macros in Workbooks Outside of Trusted LocationsUsing Disable All Macros with NotificationOverview of Recording, Storing, and Running a MacroFilling Out the Record Macro DialogRunning a MacroCreating a Macro Button on the RibbonCreating a Macro Button on the Quick Access ToolbarAssigning a Macro to a Form Control, Text Box, or ShapeUsing New File Types in Excel 2010Understanding the VB EditorVB Editor SettingsThe Project ExplorerThe Properties WindowUnderstanding Shortcomings of the Macro RecorderExamining Code in the Programming WindowRunning the Macro on Another Day Produces Undesired ResultsPossible Solution: Use Relative References When RecordingNever Use the AutoSum Button While Recording a MacroThree Tips When Using the Macro RecorderNext StepsChapter 2 This Sounds Like BASIC, So Why Doesn't It Look Familiar?I Can't Understand This CodeUnderstanding the Parts of VBA "Speech"VBA Is Not Really HardVBA Help Files: Using F1 to Find AnythingUsing Help TopicsExamining Recorded Macro Code: Using the VB Editor and HelpOptional ParametersDefined ConstantsProperties Can Return ObjectsUsing Debugging Tools to Figure Out Recorded CodeStepping Through CodeMore Debugging Options: BreakpointsBacking Up or Moving Forward in CodeNot Stepping Through Each Line of CodeQuerying Anything While Stepping Through CodeUsing a Watch to Set a BreakpointUsing a Watch on an ObjectObject Browser: The Ultimate ReferenceSeven Tips for Cleaning Up Recorded CodeTip 1: Don't Select AnythingTip 2: Cells(2,5) Is More Convenient Than Range("E2")Tip 3: Ride the Range from the Bottom to Find Last RowTip 4: Use Variables to Avoid Hard-Coding Rows and FormulasTip 5: R1C1 Formulas That Make Your Life EasierTip 6: Learn to Copy and Paste in a Single StatementTip 7: Use With...End With to Perform Multiple ActionsNext StepsChapter 3 Referring to RangesThe Range ObjectSyntax to Specify a RangeNamed RangesShortcut for Referencing RangesReferencing Ranges in Other SheetsReferencing a Range Relative to Another RangeUse the Cells Property to Select a RangeUsing the Cells Property in the Range PropertyUse the Offset Property to Refer to a RangeUse the Resize Property to Change the Size of a RangeUse the Union Method to Join Multiple RangesUse the ISEMPTY Function to Check Whether a Cell Is EmptyUse the Intersect Method to Create a New Range from Overlapping RangesUse the ISEMPTY Function to Check Whether a Cell Is EmptyUse the CurrentRegion Property to Select a Data RangeUse the Areas Collection to Return a Noncontiguous RangeReferencing TablesNext StepsChapter 4 User-Defined FunctionsCreating User-Defined FunctionsSharing UDFsUseful Custom Excel FunctionsSet the Current Workbook's Name in a CellSet the Current Workbook's Name and File Path in a CellCheck Whether a Workbook Is OpenCheck Whether a Sheet in an Open Workbook ExistsCount the Number of Workbooks in a DirectoryRetrieve USERIDRetrieve Date and Time of Last SaveRetrieve Permanent Date and TimeValidate an E-mail AddressSum Cells Based on Interior ColorCount Unique ValuesRemove Duplicates from a RangeFind the First Nonzero-Length Cell in a RangeSubstitute Multiple CharactersRetrieve Numbers from Mixed TextConvert Week Number into DateSeparate Delimited StringSort and ConcatenateSort Numeric and Alpha CharactersSearch for a String Within TextReverse the Contents of a CellMultiple MaxReturn Hyperlink AddressReturn the Column Letter of a Cell AddressStatic RandomUsing Select Case on a WorksheetNext StepsChapter 5 Looping and Flow ControlUsing Variables in the For StatementVariations on the For...Next LoopExiting a Loop Early After a Condition Is MetNesting One Loop Inside Another LoopDo LoopsUsing the While or Until Clause in Do LoopsWhile...Wend LoopsVBA Loop: For EachObject VariablesFlow Control: Using If...Then...Else and Select CaseBasic Flow Control: If...Then...ElseConditionsIf...Then...End IfEither/Or Decisions: If...Then...Else...End IfUsing If...Else If...End If for Multiple ConditionsUsing Select Case...End Select for Multiple ConditionsComplex Expressions in Case StatementsNesting If StatementsNext StepsChapter 6 R1C1-Style FormulasReferring to Cells: A1 Versus R1C1 ReferencesSwitching Excel to Display R1C1-Style ReferencesThe Miracle of Excel FormulasEnter a Formula Once and Copy 1,000 TimesThe Secret: It's Not That AmazingExplanation of R1C1 Reference StyleUsing R1C1 with Relative ReferencesUsing R1C1 with Absolute ReferencesUsing R1C1 with Mixed ReferencesReferring to Entire Columns or Rows with R1C1 StyleReplacing Many A1 Formulas with a Single R1C1 FormulaRemembering Column Numbers Associated with Column LettersArray Formulas Require R1C1 FormulasNext StepsChapter 7 What Is New in Excel 2010 and What Has Changed.If It Has Changed in the Front End, It Has Changed in VBAThe RibbonChartsPivot TablesSlicersConditional FormattingTablesSortingSmartArtLearning the New Objects and MethodsCompatibility ModeVersionExcel8CompatibilityModeNext StepsChapter 8 Create and Manipulate Names in VBAExcel NamesGlobal Versus Local NamesAdding NamesDeleting NamesAdding CommentsTypes of NamesFormulasStringsNumbersTablesUsing Arrays in NamesReserved NamesHiding NamesChecking for the Existence of a NameNext StepsChapter 9 Event ProgrammingLevels of EventsUsing EventsEvent ParametersEnabling EventsWorkbook EventsWorkbook_Activate()Workbook_Deactivate()Workbook_Open()Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)Workbook_BeforePrint(Cancel As Boolean)Workbook_BeforeClose(Cancel As Boolean)Workbook_NewSheet(ByVal Sh As Object).Workbook_WindowResize(ByVal Wn As Window).Workbook_WindowActivate(ByVal Wn As Window)Workbook_WindowDeactivate(ByVal Wn As Window).Workbook_AddInInstall().Workbook_AddInUninstall.Workbook_Sync(ByVal SyncEventType As Office.MsoSyncEventType).Workbook_PivotTableCloseConnection(ByVal Target As PivotTable)Workbook_PivotTableOpenConnection(ByVal Target As PivotTable).Workbook_RowsetComplete(ByVal Description As String, ByVal Sheet As String, ByVal Success As Boolean).Workbook_BeforeXmlExport(ByVal Map As XmlMap, ByVal Url As String, Cancel As Boolean)Workbook_AfterXmlExport(ByVal Map As XmlMap, ByVal Url As String, ByVal Result As XlXmlExportResult).Workbook_BeforeXmlImport(ByVal Map As XmlMap, ByVal Url As String, ByVal IsRefresh As Boolean, Cancel As Boolean).Workbook_AfterXmlImport(ByVal Map As XmlMap, ByVal IsRefresh As Boolean, ByVal Result As XlXmlImportResult).Workbook Level Sheet and Chart Events.Worksheet EventsWorksheet_Activate()Worksheet_Deactivate()Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean).Worksheet_Calculate()Worksheet_Change(ByVal Target As Range)Worksheet_SelectionChange(ByVal Target As Range).Worksheet_FollowHyperlink(ByVal Target As Hyperlink).Worksheet_PivotTableUpdate(ByVal Target As PivotTable)Chart Sheet Events.Embedded ChartsChart_Activate()Chart_BeforeDoubleClick(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long, Cancel As Boolean)Chart_BeforeRightClick(Cancel As Boolean).Chart_Calculate()Chart_Deactivate().Chart_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long).Chart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long).Chart_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long).Chart_Resize().Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long).Chart_SeriesChange(ByVal SeriesIndex As Long, ByVal PointIndex As Long).Chart_DragOver()Chart_DragPlot()Application-Level Events.AppEvent_AfterCalculate()AppEvent_NewWorkbook(ByVal Wb As Workbook)AppEvent_ProtectedViewWindowActivate(ByVal Pvw As ProtectedViewWindow).AppEvent_ProtectedViewWindowBeforeClose(ByVal Pvw As ProtectedViewWindow, ByVal Reason As XlProtectedViewCloseReason, Cancel As Boolean).AppEvent_ProtectedViewWindowDeactivate(ByVal Pvw As ProtectedViewWindow)AppEvent_ProtectedViewWindowOpen(ByVal Pvw As ProtectedViewWindow).AppEvent_ProtectedViewWindowResize(ByVal Pvw As ProtectedViewWindow)AppEvent_SheetActivate (ByVal Sh As Object).AppEvent_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean).AppEvent_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean).AppEvent_SheetCalculate(ByVal Sh As Object)AppEvent_SheetChange(ByVal Sh As Object, ByVal Target As Range).AppEvent_SheetDeactivate(ByVal Sh As Object).AppEvent_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)AppEvent_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range).AppEvent_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)AppEvent_WindowActivate(ByVal Wb As Workbook, ByVal Wn As Window)AppEvent_WindowDeactivate(ByVal Wb As Workbook, ByVal Wn As Window).AppEvent_WindowResize(ByVal Wb As Workbook, ByVal Wn As Window).AppEvent_WorkbookActivate(ByVal Wb As Workbook)AppEvent_WorkbookAddinInstall(ByVal Wb As Workbook)AppEvent_WorkbookAddinUninstall(ByVal Wb As Workbook).AppEvent_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)AppEvent_WorkbookBeforePrint(ByVal Wb As Workbook, Cancel As Boolean)AppEvent_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)AppEvent_WorkbookNewSheet(ByVal Wb As Workbook, ByVal Sh As Object).AppEvent_WorkbookOpen(ByVal Wb As Workbook)AppEvent_WorkbookPivotTableCloseConnection(ByVal Wb As Workbook, ByVal Target As PivotTable)AppEvent_WorkbookPivotTableOpenConnection(ByVal Wb As Workbook, ByVal Target As PivotTable)AppEvent_WorkbookRowsetComplete(ByVal Wb As Workbook, ByVal Description As String, ByVal Sheet As String, ByVal Success As Boolean).AppEvent_WorkbookSync(ByVal Wb As Workbook, ByVal SyncEventType As Office.MsoSyncEventType).AppEvent_WorkbookBeforeXmlExport(ByVal Wb As Workbook, ByVal Map As XmlMap, ByVal Url As String, Cancel As Boolean)AppEvent_WorkbookAfterXmlExport(ByVal Wb As Workbook, ByVal Map As XmlMap, ByVal Url As String, ByVal Result As XlXmlExportResult)AppEvent_WorkbookBeforeXmlImport(ByVal Wb As Workbook, ByVal Map As XmlMap, ByVal Url As String, ByVal IsRefresh As Boolean, Cancel As Boolean).AppEvent_WorkbookAfterXmlImport(ByVal Wb As Workbook, ByVal Map As XmlMap, ByVal IsRefresh As Boolean, ByVal Result As XlXmlImportResult)Next StepsChapter 10 Userforms: An IntroductionUser Interaction MethodsInput Boxes.Message BoxesCreating a UserformCalling and Hiding a UserformProgramming the UserformUserform EventsProgramming ControlsUsing Basic Form ControlsUsing Labels, Text Boxes, and Command ButtonsUsing a Spin Button on a UserformUsing the MultiPage Control to Combine FormsVerifying Field EntryIllegal Window ClosingGetting a FilenameNext StepsChapter 11 Creating ChartsCharting in Excel 2010Referencing Charts and Chart Objects in VBA Code.Creating a Chart.Specifying the Size and Location of a ChartLater Referring to a Specific ChartRecording Commands from the Layout or Design TabsSpecifying a Built-in Chart TypeSpecifying a Template Chart TypeChanging a Chart's Layout or StyleUsing SetElement to Emulate Changes on the Layout TabUsing SetElement to Emulate Changes on the Layout TabUsing SetElement to Emulate Changes on the Layout TabUsing SetElement to Emulate Changes on the Layout TabChanging a Chart Title Using VBAEmulating Changes on the Format TabUsing the Format Method to Access Formatting OptionsCreating Advanced ChartsCreating True Open-High-Low-Close Stock ChartsCreating Bins for a Frequency ChartCreating a Stacked Area ChartExporting a Chart as a GraphicCreating a Dynamic Chart in a UserformCreating Pivot Charts.Next Steps.Chapter 12 Data Mining with Advanced FilterReplacing a Loop with AutoFilter.Using New AutoFilter TechniquesSelecting Visible Cells OnlyAdvanced Filter Is Easier in VBA Than in ExcelUsing the Excel Interface to Build an Advanced Filter.Using Advanced Filter to Extract a Unique List of ValuesExtracting a Unique List of Values with the User Interface.Extracting a Unique List of Values with VBA CodeGetting Unique Combinations of Two or More Fields.Using Advanced Filter with Criteria Ranges.Joining Multiple Criteria with a Logical OR.Joining Two Criteria with a Logical AND.Other Slightly Complex Criteria Ranges.The Most Complex Criteria: Replacing the List of Values with a Condition Created as the Result of a FormulaUsing Filter in Place in Advanced FilterCatching No Records When Using Filter in PlaceShowing All Records After Filter in PlaceThe Real Workhorse: xlFilterCopy with All Records Rather Than Unique Records OnlyThe Real Workhorse: xlFilterCopy with All Records Rather Than Unique Records OnlyCopying All ColumnsCopying a Subset of Columns and ReorderingThe Real Workhorse: xlFilterCopy with All Records Rather Than Unique Records OnlyThe Real Workhorse: xlFilterCopy with All Records Rather Than Unique Records OnlyUsing Filter in Place with Unique Records OnlyExcel in Practice: Turning Off a Few Drop-Downs in the AutoFilterNext StepsChapter 13 Using VBA to Create Pivot TablesIntroducing Pivot TablesUnderstanding VersionsNew in Excel 2010New Beginning with Excel 2007Creating a Vanilla Pivot Table in the Excel InterfaceUnderstanding Compact LayoutBuilding a Pivot Table in Excel VBADefining the Pivot CacheCreating and Configuring the Pivot TableAdding Fields to the Data AreaLearning Why You Cannot Move or Change Part of a Pivot ReportDetermining Size of a Finished Pivot Table to Convert the Pivot Table to ValuesUsing Advanced Pivot Table FeaturesUsing Multiple Value FieldsCounting the Number of RecordsGrouping Daily Dates to Months, Quarters, or YearsChanging the Calculation to Show PercentagesEliminating Blank Cells in the Values AreaControlling the Sort Order with AutoSortReplicating the Report for Every ProductFiltering a Data SetManually Filtering Two or More Items in a Pivot FieldUsing the Conceptual FiltersUsing the Search FilterSetting Up Slicers to Filter a Pivot TableFiltering an OLAP Pivot Table Using Named SetsUsing Other Pivot Table FeaturesCalculated Data FieldsCalculated ItemsUsing ShowDetail to Filter a RecordsetChanging the Layout from the Design TabSuppressing Subtotals for Multiple Row FieldsNext StepsChapter 14 Excel PowerFile OperationsList Files in a DirectoryImport CSVRead Entire TXT to Memory and ParseCombining and Separating WorkbooksSeparate Worksheets into WorkbooksCombine WorkbooksFilter and Copy Data to Separate WorksheetsExport Data to WordWorking with Cell CommentsList CommentsResize CommentsResize Comments with CenteringPlace a Chart in a CommentUtilities to Wow Your ClientsUsing Conditional Formatting to Highlight Selected CellHighlight Selected Cell Without Using Conditional FormattingCustom Transpose DataSelect/Deselect Noncontiguous CellsTechniques for VBA ProsPivot Table Drill-DownSpeedy Page SetupCalculating Time to Execute CodeCustom Sort OrderCell Progress IndicatorProtected Password BoxChange CaseSelecting with SpecialCellsActiveX Right-Click MenuCool ApplicationsHistorical Stock/Fund QuotesUsing VBA Extensibility to Add Code to New WorkbooksNext Steps.Chapter 15 Data Visualizations and Conditional FormattingIntroduction to Data VisualizationsVBA Methods and Properties for Data VisualizationsAdding Data Bars to a RangeAdding Color Scales to a RangeAdding Icon Sets to a RangeSpecifying an Icon SetSpecifying Ranges for Each IconUsing Visualization TricksCreating an Icon Set for a Subset of a RangeUsing Two Colors of Data Bars in a RangeUsing Other Conditional Formatting MethodsFormatting Cells That Are Above or Below AverageFormatting Cells in the Top 10 or Bottom 5Formatting Unique or Duplicate CellsFormatting Cells Based on Their ValueFormatting Cells That Contain TextFormatting Cells That Contain DatesFormatting Cells That Contain Blanks or ErrorsUsing a Formula to Determine Which Cells to FormatUsing the New NumberFormat PropertyNext StepsChapter 16 Reading from and Writing to the WebGetting Data from the WebManually Creating a Web Query and Refreshing with VBAUsing VBA to Update an Existing Web QueryBuilding Many Web Queries with VBAUsing Application.OnTime to Periodically Analyze DataScheduled Procedures Require Ready ModeSpecifying a Window of Time for an UpdateCanceling a Previously Scheduled MacroClosing Excel Cancels All Pending Scheduled MacrosScheduling a Macro to Run x Minutes in the FutureScheduling a Verbal ReminderScheduling a Macro to Run Every 2 MinutesPublishing Data to a Web PageUsing VBA to CreateCustom Web PagesUsing Excel as a Content Management SystemBonus: FTP from ExcelNext StepsChapter 17 Dashboarding with Sparklines in Excel 2010Creating SparklinesScaling the SparklinesFormatting SparklinesUsing Theme ColorsUsing RGB ColorsFormatting Sparkline ElementsFormatting Win/Loss ChartsCreating a DashboardObservations About SparklinesCreating 100's of Individual Sparklines in a DashboardNext StepsChapter 18 Automating WordEarly BindingCompile Error: Can't Find Object or LibraryLate BindingCreating and Referencing ObjectsThe New KeywordCreateObject FunctionGetObject FunctionUsing Constant ValuesUsing the Watch Window to Retrieve the Real Value of a ConstantUsing the Object Browser to Retrieve the Real Value of a ConstantUnderstanding Word's ObjectsDocument ObjectSelection ObjectRange ObjectBookmarksControlling Form Fields in WordNext StepsChapter 19 ArraysDeclare an ArrayMultidimensional ArraysFill an ArrayEmpty an ArrayArrays Make It Easier to Manipulate Data, but Is That All?Dynamic ArraysPassing an ArrayNext StepsChapter 20 Text File ProcessingImporting from Text FilesImporting Text Files with Fewer Than 1,048,576 RowsReading Text Files with More Than 1,048,576 RowsWriting Text FilesNext StepsChapter 21 Using Access as a Back End to Enhance Multiuser Access to DataADO Versus DAOThe Tools of ADOAdding a Record to the DatabaseRetrieving Records from the DatabaseUpdating an Existing RecordDeleting Records via ADOSummarizing Records via ADOOther Utilities via ADOChecking for the Existence of TablesChecking for the Existence of a FieldAdding a Table On the FlyAdding a Field On the FlySQL Server ExamplesNext StepsChapter 22 Creating Classes, Records, and CollectionsInserting a Class ModuleTrapping Application and Embedded Chart EventsApplication EventsEmbedded Chart EventsCreating a Custom ObjectUsing a Custom ObjectUsing Property Let and Property Get to Control How Users Utilize Custom ObjectsCollectionsCreating a Collection in a Standard ModuleCreating a Collection in a Class ModuleUser-Defined TypesNext StepsChapter 23 Advanced Userform TechniquesUsing the UserForm Toolbar in the Design of Controls on UserformsMore Userform ControlsCheck BoxesTab StripsRefEditToggle ButtonsUsing a Scrollbar As a Slider to Select ValuesControls and CollectionsModeless UserformsUsing Hyperlinks in UserformsAdding Controls at RuntimeResizing the Userform On-the-flyAdding a Control On-the-flySizing On-the-flyAdding Other ControlsAdding an Image On-the-flyPutting It All TogetherAdding Help to the UserformShowing Accelerator KeysAdding Control Tip TextCreating the Tab OrderColoring the Active ControlTransparent FormsNext StepsChapter 24 Windows APIWhat Is the Windows API?Understanding an API DeclarationUsing an API DeclarationAPI ExamplesRetrieve the Computer NameCheck Whether an Excel File Is Open on a NetworkRetrieve Display-Resolution InformationCustom About DialogDisable the X for Closing a UserformRunning TimerPlaying SoundsRetrieving a File PathFinding More API DeclarationsNext StepsChapter 25 Handling ErrorsWhat Happens When an Error Occurs?Debug Error Inside Userform Code Is MisleadingBasic Error Handling with the On Error GoTo SyntaxGeneric Error HandlersHandling Errors by Choosing to Ignore ThemSuppressing Excel WarningsEncountering Errors on PurposeTrain Your ClientsErrors While Developing Versus Errors Months LaterRuntime Error 9: Subscript Out of RangeRunTime Error 1004: Method Range of Object Global FailedThe Ills of Protecting CodeMore Problems with PasswordsErrors Caused by Different VersionsNext StepsChapter 26 Customizing the Ribbon to Run MacrosOut with the Old, In with the NewWhere to Add Your Code: customui Folder and FileCreating the Tab and GroupAdding a Control to Your RibbonAccessing the File StructureUnderstanding the RELS FileRenaming the Excel File and Opening the WorkbookCustom UI Editor ToolUsing Images on ButtonsMicrosoft Office IconsCustom Icon ImagesTroubleshooting Error MessagesThe Attribute "Attribute Name" on the Element "customui Ribbon" Is Not Defined in the DTD/SchemaIllegal Qualified Name CharacterElement "customui Tag Name" Is Unexpected According to Content Model of Parent Element "customui Tag Name"Excel Found Unreadable ContentWrong Number of Arguments or Invalid Property AssignmentNothing HappensOther Ways to Run a MacroKeyboard ShortcutAttach a Macro to a Command ButtonAttach a Macro to a ShapeAttach a Macro to an ActiveX ControlRunning a Macro from a HyperlinkNext StepsChapter 27 Creating Add-InsCharacteristics of Standard Add-InsConverting an Excel Workbook to an Add-InUsing Save As to Convert a File to an Add-InUsing the VB Editor to Convert a File to an Add-InHaving Your Client Install the Add-InStandard Add-Ins Are Not SecureClosing Add-InsRemoving Add-InsUsing a Hidden Workbook as an Alternative to an Add-InNext Steps9780789743145 TOC 6/1/2010