Excel Macro Record and VBA Editor. Presented by Wayne Wilmeth

Similar documents
MICROSOFT EXCEL 2000 LEVEL 5 VBA PROGRAMMING INTRODUCTION

Advanced Excel Selecting and Navigating Cells

3. (1.0 point) To quickly switch to the Visual Basic Editor, press on your keyboard. a. Esc + F1 b. Ctrl + F7 c. Alt + F11 d.

Using Numbers, Formulas, and Functions

variables programming statements

194 useful Keyboard Shortcuts for Excel Excel 2010 Shortcuts

Microsoft Excel > Shortcut Keys > Shortcuts

EXCEL 2003 DISCLAIMER:

MICROSOFT EXCEL KEYBOARD SHORCUTS

Advanced Excel Macros : Data Validation/Analysis : OneDrive

Getting started 7. Writing macros 23

Using Microsoft Excel

Quick Reference Guide 8 Excel 2013 for Windows Keyboard Shortcut Keys

VBA Excel 2013/2016. VBA Visual Basic for Applications. Learner Guide

Excel Select a template category in the Office.com Templates section. 5. Click the Download button.

Microsoft How to Series

An InputBox( ) function will display an input Box window where the user can enter a value or a text. The format is

Using Microsoft Excel

Intermediate Excel Training Course Content

"Excel"-erate Your Worksheets! Shortcuts and Power Tips NDSU Information Technology Services December 18, 2006

EXCEL TUTORIAL.

Microsoft Excel Keyboard Shortcuts

Excel & Visual Basic for Applications (VBA)

Excel. Tutorial 1 Getting Started with Excel. Tutorial 2 Formatting a Workbook. Tutorial 3 Working with Formulas and Functions COMPREHENSIVE

Microsoft Excel 2010 Level 1

INSERT SUBTOTALS Database Exercise Sort the Data Department Department Data Tab Sort and Filter Group

Adding records Pasting records Deleting records Sorting records Filtering records Inserting and deleting columns Calculated columns Working with the

VBA Collections A Group of Similar Objects that Share Common Properties, Methods and

Table of Contents Data Validation... 2 Data Validation Dialog Box... 3 INDIRECT function... 3 Cumulative List of Keyboards Throughout Class:...

Excel Shortcuts Increasing YOUR Productivity

Excel Forecasting Tools Review

MS EXCEL 2007 HOTKEYS

Lesson 1: Exploring Excel Return to the Excel 2007 web page

. Sheet - Sheet. Unhide Split Freeze. Sheet (book) - Sheet-book - Sheet{book} - Sheet[book] - Arrange- Freeze- Split - Unfreeze - .

Office of Instructional Technology

Learning Worksheet Fundamentals

Using Microsoft Excel

Part 1. Module 3 MODULE OVERVIEW. Microsoft Office Suite. Objectives. What is A Spreadsheet? Microsoft Excel

Gloucester County Library System EXCEL 2007

Themes & Templates Applying a theme Customizing a theme Creatingfilefromtemplate Creating yourowncustomize Template Using templates Editing templates

BASIC EXCEL SYLLABUS Section 1: Getting Started Section 2: Working with Worksheet Section 3: Administration Section 4: Data Handling & Manipulation

ECDL Module 4 REFERENCE MANUAL

MICROSOFT EXCEL VISUAL BASIC FOR APPLICATIONS INTERMEDIATE

Full file at Excel Chapter 2 - Formulas, Functions, Formatting, and Web Queries

Excel Format cells Number Percentage (.20 not 20) Special (Zip, Phone) Font

I OFFICE TAB... 1 RIBBONS & GROUPS... 2 OTHER SCREEN PARTS... 4 APPLICATION SPECIFICATIONS... 5 THE BASICS...

Excel Introduction to Excel Databases & Data Tables

Microsoft Office Excel

Unit 12. Electronic Spreadsheets - Microsoft Excel. Desired Outcomes

Working with Excel CHAPTER 1

Excel Tools Features... 1 Comments... 2 List Comments Formatting... 3 Center Across... 3 Hide Blank Rows... 3 Lists... 3 Sheet Links...

Excel 2016 Basics for Mac

Working with Excel involves two basic tasks: building a spreadsheet and then manipulating the

Advanced Excel. Click Computer if required, then click Browse.

Excel 2016 Basics for Windows

Unit 2 Fine-tuning Spreadsheets, Functions (AutoSum)

CALCULATE NPV USING EXCEL

DOING MORE WITH EXCEL: MICROSOFT OFFICE 2010

Payment Function Exercise

Starting Excel application

KEYBOARD SHORTCUTS AND HOT KEYS

Microsoft Excel Chapter 1. Creating a Worksheet and an Embedded Chart

BASIC MACROINSTRUCTIONS (MACROS)

The American University in Cairo. Academic Computing Services. Excel prepared by. Maha Amer

Creating a Spreadsheet by Using Excel

1 THE PNP BASIC COMPUTER ESSENTIALS e-learning (MS Excel 2007)

lab MS Excel 2010 active cell

råáîéêëáíó=çñ=pçìíüéêå=`~äáñçêåá~ Academic Information Services Excel 2007 Introduction to Excel

Alternatives To Custom Dialog Box

Excel shortcut and function keys

Excel keyboard shortcuts and function keys

6/14/2010. VBA program units: Subroutines and Functions. Functions: Examples: Examples:

Ctrl+A Select All None Ctrl+B Bold Format, Cells, Font, Font Style, Bold Ctrl+C Copy Edit, Copy Ctrl+D Fill Down Edit, Fill, Down Ctrl+F Find Edit,

Understanding the MsgBox command in Visual Basic

Unit 2 Fine-tuning Spreadsheets, Functions (AutoSum)

Microsoft Excel 2013 Unit 1: Spreadsheet Basics & Navigation Student Packet

MODULE VI: MORE FUNCTIONS

Rev. C 11/09/2010 Downers Grove Public Library Page 1 of 41

Learning Microsoft Excel Module 1 Contents. Chapter 1: Introduction to Microsoft Excel

12 BASICS OF MS-EXCEL

Skills Exam Objective Objective Number

Gloucester County Library System. Excel 2010

Appendix A1 Visual Basics for Applications (VBA)

Microsoft Excel Chapter 1. Creating a Worksheet and a Chart

Spreadsheet Concepts Using Microsoft Excel

Excel Working with Formulas and Functions. Using Relative References. Engineering Staff College of India

Tips & Tricks: MS Excel

Project 4 Financials (Excel)

Excel 2007 Intermediate Table of Contents

Learning Microsoft Excel Module 1 Contents. Chapter 1: Introduction to Microsoft Excel

Lesson 1: Creating a Worksheet and a Chart Microsoft Excel 2016 IN THIS CHAPTER, YOU WILL LEARN HOW TO

Microsoft Excel for Lawyers - The Fundamentals Reference Guide

In a PivotTable, it selects the entire PivotTable report. Displays the Insert dialog box to insert blank cells.

Excel shortcut and function keys

Microsoft Excel 2010 Step-by-Step Exercises PivotTables and PivotCharts: Exercise 1

EXCEL 2007 TIP SHEET. Dialog Box Launcher these allow you to access additional features associated with a specific Group of buttons within a Ribbon.

2013 INTERMEDIATE MANUAL

Microsoft Office Excel 2007: Basic. Course Overview. Course Length: 1 Day. Course Overview

Lesson 1: Exploring Excel Return to the FastCourse Excel 2007 Level 1 book page

เพ มภาพตามเน อหาของแต ละบท. Microsoft Excel Benjamas Panyangam and Dr. Dussadee Praserttitipong. Adapted in English by Prakarn Unachak

Transcription:

Excel Macro Record and VBA Editor Presented by Wayne Wilmeth 1

What Is a Macro? Automates Repetitive Tasks Written in Visual Basic for Applications (VBA) Code Macro Recorder VBA Editor (Alt + F11) 2

Executing Macros Keyboard Shortcuts Macro Buttons Menu Buttons 3

Macro Storage Locations Personal Macro Workbook (Personal.xlsb) Runs in Any File (Necessary when activation is in the menu) This Workbook/ New Workbook Runs in File it is Saved to Only (Useful when you will be emailing the file) 4

The Macro Recorder Advantage Creates VBA Code for You Disadvantages Does Not Always Record Actions as Desired Cannot Record Conditionally Cannot Loop 5

Recorder: Absolute or Relative? OR Absolute Plays back in same cells originally recorded in. Relative Plays back in any cell. 6

Displaying the Developer Tab Right click a tab then Customize the Ribbon. 7

Exercise 1: Relative Recording Format Cells with Bold, Double Upperline, and Currency with no numbers to the right of the decimal 8

Exercise 2: Absolute Recording Print Setup Macro PrintFullSheet Macro This macro will print as follows: Set Print Area to A1:M8 Sorted by Total Hours Landscape Orientation Gridlines Printed PrintPartialSheet Macro This macro will print as follows: Set Print Area to A1:M8 Hide the columns: Rate, Gross, and Net. Sorted by Employee name Portrait Orientation Gridlines Printed 9

Exercise 3: Absolute Recording Building a Template (If you don t click a tab it will work on any sheet) TIP: To insert a new sheet and build the template, type this as the first line of code in your sub procedure: Sheets.Add 10

Exercise 4: Relative Recording Custom Format to Display Numbers in Millions Positive Numbers ; Negative Numbers ; Zero ; Text This section handles how positive numbers appear. This section handles how negative numbers appear. This section handles how zeros appear. This section is for formatting text. Note: You don t have to use each section. If you use just the first section, both positive and negative numbers are affected. If you skip a section you must still type in its semi-colon. 11

Exercise 4: Relative Recording Custom Format to Display Numbers in Millions This comma after the first 0 or # means we wish to use thousands separators.. Use a decimal point.,, Scales the number to display in millions. ; separates the section for positive and negative values. - in the negative section places a minus in front of the number. Places a $ to the left. $#,###.0,,;[Red]-$#,###.0,, # is a placeholder and will not display insignificant digits. For example: 6.50 #.## 6.5 ### will display three significant digits between the decimal point and the thousands separator. 0 is a placeholder and will display insignificant digits. For example: 6.50 0.00 6.50 [Red] in the negative section indicates that negative numbers should appear in red. 12

Exercise 4: Relative Recording Custom Format to Display Numbers in Millions $#,###.0,,;[Red]-$#,###.0,, 13

Exercise 5: Relative Recording Macros to Shade Formulas & Unshade Formulas Next: Use VBA to Make a Shade/Unshade Toggle Shortcut 14

Introduction to VBA (Visual Basic for Applications) 15

Useful VBA Commands Alt + F8 Run a Macro in Excel Alt + F11 Toggle Between VBA Editor and Excel 16

The VBA Environment (Alt + F11) VBA stored in Modules. Each file can contain multiple modules A Module can contain multiple Procedures (i.e. macros) or you can separate them into different modules. 17

VBA Sub Procedures (i.e. Macros) Begins with Sub and end with End Sub Sub ProcedureName() Comments are notes to yourself and begin with an apostrophe. End Sub 18

VBA Exercise 1: If Then Else Statement Toggle Formula shading On/Off Based on.pattern This selects formulas cells. With to End With applies multiple properties to the interior of the selected cells. These are the properties being set. This specifies the active cell. It can be shorted to Range( A1 ).Select We will apply either set of property based on.pattern = XlSolid or XlNone 19

Structure of a VBA If Then Else Statement If Condition Then lines of code to execute ElseIf Condition Then lines of code to execute ElseIf Condition Then Else lines of code to execute lines of code to execute End If Optional 20

VBA Exercise 1: Toggle Formula Shading Sub ShadeToggle() ' Toggles formula shading on and off Selection.SpecialCells(xlCellTypeFormulas, 23).Select With Selection.Interior If.Pattern = xlnone Then.Pattern = xlsolid.themecolor = xlthemecoloraccent4.tintandshade = 0.599993896298105 ElseIf.Pattern = xlsolid Then.Pattern = xlnone.tintandshade = 0.PatternTintAndShade = 0 End If End With Range("A1").Select End Sub 21

VBA Exercise 2: Divide a Single Cell by One Million Sub MillsDivide() ' Divides a single cell by one million. ActiveCell.Value = ActiveCell.Value / 1000000 End Sub 22

VBA Exercise 3: Divide a Range by 1 Million For Each Next Loop and Variables Allows you to perform actions on each cell in a range of cells one at a time. For Each item In collection Lines of code Next item item This is a variable name you are assigning each individual item in the collection of objects. It can be any name. In this example we used item. collection This is the name of the object to be affected. For example, Selection. Next - This causes the next item in the collection to be evaluated. 23

VBA Exercise 3: Divide a Range of Cells by One Million Sub MillsDivideRange() ' Divides a range of cells by one million. Dim Item As Range For Each Item In Selection Item.Value = Item.Value / 1000000 Next Item End Sub Note: This works but has issues if the range contains a formula, blank, or text. 24

VBA Exercise 3: Issues Resolved Sub MillsDivideRange() ' Divides a range of cells by one million. Dim Item As Range For Each Item In Selection If Not IsEmpty(Item) And Not Item.HasFormula And IsNumeric(Item) Then Item.Value = Item.Value / 1000000 Next Item End Sub Notes: If your If Statement is all on one line you don t need End If. Formulas and Blanks are considered Numeric entries but text is not. 25

About the VBA Object Model Objects, Collections, Hierarchy, Properties, Methods & Arguments Object Oriented Programming Language Range Workbook Chart Worksheet Shape Plus Over One Hundred more! 26

About the VBA Object Model Objects, Collections, Hierarchy, Properties, Methods & Arguments Collections Group of Objects of the Same Type. A Collection is also an Object and is Plural. For example, a workbook contains multiple worksheet objects. The collection object of these is worksheets Syntax: CollectionName("Object Name") Example: Worksheets("Sheet1") Refers to Sheet1 in the workbook. 27

About the VBA Object Model Objects, Collections, Hierarchy, Properties, Methods & Arguments Hierarchy Objects can Contain other Objects. To specify an object, you must follow the path through the parent objects to get to the object you wish to affect. In this example, A1 is on Sheet2 in the file called Finances.xlsx. Hierarchical levels are separated by periods. Application.Workbooks("Finances.xlsx").Worksheets("Sheet2").Range("A1") Object Collection Object Object in Workbooks Collection Object in Worksheets Object Object in Range Object Note that just Range( A1 ) would refer to A1 on the current sheet in any file. You don t have to go through the entire Hierarchy unless you need to be specific. 28

About the VBA Object Model Objects, Collections, Hierarchy, Properties, Methods & Arguments Objects have Properties. Example: a range of cells has a color, width or can contain a value. You can do two things with properties: Determine the Current Properties of an Object. Set the Properties of Most Objects. Range("A1").Value Determines the value in cell A1. Range("A1").Value = 100 Sets the value in cell A1 to 100. 29

About the VBA Object Model Objects, Collections, Hierarchy, Properties, Methods & Arguments Objects have Methods. A Method is an Action you can Perform with the Object. Range("A1").ClearContents Erases the contents of cell A1 using the ClearContents method. Note: Methods may seem similar to Properties in that with both you can change something but with properties, you are merely setting a property inherit in that object whereas with methods, you are doing something with the object. 30

About the VBA Object Model Objects, Collections, Hierarchy, Properties, Methods & Arguments Most Methods have Arguments as do Some Properties. Arguments further Define what an Method does. Range("A1").Copy Range("B10") The Copy method copies the contents of cell A1. Its optional paste argument then pastes it to cell B10 (i.e. Range( B10 ). Object Method Argument Note: Method arguments follow the name of the argument separated by a space. If using multiple arguments separate them with commas. 31

About the VBA Object Model Object Model Map http://msdn.microsoft.com/en-us/library/office/aa209782(v=office.10).aspx 32

VBA Object Model More Leaning Resources Websites http://www.excel-spreadsheet.com/vba/objecthierarchy.htm Online Videos in Blackboard Books 33

VBA Exercise 4: Unhide All Columns & Rows This will Unhide all Columns and Rows in the Current Sheet Sub UnhideAll() Rows.Hidden = False Columns.Hidden = False End Sub Object. Rows.Hidden = False Not Specified Property Property Value of the Property We did not specify a specific object so the code above affects the current sheet. To unhide columns and rows on a specific sheet, you would specify the object: Worksheets("Sheet4").Rows.Hidden = False 34

VBA Exercise 5 Hide Specific Columns & Rows (Columns H XFD & Rows 13-1048576) Columns H-XFD Sub HideColRows3() Row 13-1048576 Range("H1", "XFD1").EntireColumn.Hidden = True Range("A13", "A1048576").EntireRow.Hidden = True End Sub Note: Because we are not hiding all columns and rows, we can t use Rows or Columns as in Exercise 4, we must use the EntireRow & EntireColumn properties. 35

VBA Exercise 6 Goal: Hide all rows below the currently selected cell and all columns to its left. 36

VBA Exercise 6 We need to specify the first column to be hidden. For example, this would hide column H if the currently selected cell were G7. 1 2 3 4 5 6 7 8 ActiveCell.Column (i.e. 7) Returns the current column (G) as an index number (7). ActiveCell.Column + 1 (i.e. 7+1) Returns one column to the right of the current column as an index number (8) (i.e. Column H). 37

VBA Exercise 6 We need to specify the first row to be hidden. This would hide row 13 if the currently selected cell were G7. ActiveCell.Row Returns the current row (12). ActiveCell.Row + 1 (i.e. 12+1) Returns one row below the current row (13). 38

VBA Exercise 6 Assigning Variables to the Current Column & Row Sub HideColRows2() StartCol = ActiveCell.Column + 1 StartRow = ActiveCell.Row + 1 We will assigning the variable StartCol to the first column to be hidden and StartRow to the first row to be hidden. End Sub 39

VBA Exercise 6 Range() Requires Cell Addresses: Range( StartingCell, EndingCell ) Earlier we used this code to hide specific columns and rows. Sub HideColRows3() Range("H1", "XFD1").EntireColumn.Hidden = True Range("A13", "A1048576").EntireRow.Hidden = True End Sub Placing our variables here is correct but they are returning numbers and Range() requires cell addresses so this won t work! Sub HideColRows2() Range(StartCol, "XFD1").EntireColumn.Hidden = True Range(StartRow, "A1048576").EntireRow.Hidden = True End Sub Fortunately, we can use the Cells() property to convert an number to a cell address. 40

VBA Exercise 6 Hiding the Columns Cells() Property to Convert Numbers to Cell Addresses Syntax: Cells(Row Index Number, Column Index Number) R C Cells(1, 8) Returns H1 Cells(1, StartCol) Returns H1 Assuming the currently selected cell is G12 41

VBA Exercise 6 Hiding the Columns Sub HideColRows2() Range("H1", "XFD1").EntireColumn.Hidden = True End Sub StartCol = ActiveCell.Column + 1 Returns 8 (i.e. H) Cells(1, StartCol) Returns H1 Assuming the currently selected cell is G12 Sub HideColRows2() Range(Cells(1, StartCol), "XFD1").EntireColumn.Hidden = True End Sub Hides Columns: H1:XFD1 42

VBA Exercise 6 Hiding the Rows Sub HideColRows2() Range( A13", "A1048576").EntireRow.Hidden = True End Sub StartRow = ActiveCell.Row + 1 Returns 13 (i.e. 12+1) Cells(StartRow, 1) Returns A13 Assuming the currently selected cell is G12 Sub HideColRows2() Range(Cells(StartRow,1), " A1048576 ").EntireRow.Hidden = True End Sub Hides Rows: A13:A1048576 43

VBA Exercise 6 - Complete Hide Columns & Rows Beyond the Current Cell Sub HideColRows2() StartCol = ActiveCell.Column + 1 StartRow = ActiveCell.Row + 1 Range(Cells(1, StartCol), "XFD1").EntireColumn.Hidden = True Range(Cells(StartRow, 1), "A1048576").EntireRow.Hidden = True End Sub 44

VBA Exercise 7 Unknown Maximums Hide Columns & Rows Beyond the Current Cell Range(Cells(1, StartCol), "XFD1").EntireColumn.Hidden = True Range(Cells(StartRow, 1), "A1048576").EntireRow.Hidden = True Sub HideColRows() StartCol = ActiveCell.Column + 1 StartRow = ActiveCell.Row + 1 Range(Cells(1, StartCol), Cells(1,Columns.Count)).EntireColumn.Hidden = True Range(Cells(StartRow, 1), Cells(Rows.Count,1)).EntireRow.Hidden = True End Sub 45

Exercise 8: InputBox & MsgBox Asking for Input and Giving Output using Pop-ups 46

Exercise 8: InputBox Asking for Input InputBox (Prompt, Title, Default, xpos, ypos, Help) (Required) - Message to display to the user. (Optional) Text to display on the title bar. (Optional) Prepopulates the box. (Optional) Location of the upper left corner of the box in pixels. (Optional) Helpfile and Help Topic. Sub MonthlyPayments() A = InputBox("What is your Loan Amount?", "Amount Financed") End Sub 47

Exercise 8: MsgBox Message in a Pop-up Box MsgBox (Prompt, Buttons, Title, Help) (Required) - Message to display to the user. (Optional) Number code placed here dictates the buttons to display. (Optional) Text to display on the title bar. (Optional) Helpfile and Help Topic Numeric Code BUTTON(S) DISPLAYED ASSOCIATED CONSTANT RETURNED (Code returned when user clicks any of the buttons on the box.) 0 OK vbokonly 1 OK and CANCEL vbokcancel 2 ABORT and RETRY and IGNORE vbabortretryignore 3 YES and NO and CANCEL vbyesnocancel 4 YES and NO vbyesno 5 RETRY and CANCEL vbretrycancel 48

Exercise 8: MsgBox Message in a Pop-up Box MsgBox (Prompt, Buttons, Title, Help) (Required) - Message to display to the user. (Optional) Number code placed here dictates the buttons to display. (Optional) Text to display on the title bar. (Optional) Helpfile and Help Topic Sub MonthlyPayments() A = InputBox("What is your Loan Amount?", "Amount Financed") S = MsgBox( You can t afford a loan of " & A,,"Amount Financed" ) End Sub Two Commas 49

Exercise 8: WorksheetFunction.Pmt Returning the Payment Amount with Pmt() Pmt(Rate, Periods, LoanAmt) Rate for a single compounding period. Total number of compounding periods. Sub MonthlyPayments() A = InputBox("What is your Loan Amount?", "Amount Financed") P = WorksheetFunction.Pmt(0.03 / 12, 60, A) S = MsgBox("Your Monthly Payment will be: " & P,, "Amount Financed" ) End Sub Note: You must prefix an Excel function with WorksheetFunction. 50

Exercise 8: Fixing Issues Clicking Cancel Returns an Error and Numbers Not Formatted Sub MonthlyPayments() A = InputBox("What is your Loan Amount?", "Amount Financed") If A = "" Then Exit Sub P = WorksheetFunction.Pmt(0.03 / 12, 60, A) PF = Format(P, "$#,###.00") S = MsgBox("Your Monthly Payment will be: " & PF,, "Amount Financed" ) End Sub Note this also works: P = Format(WorksheetFunction.Pmt(0.03 / 12, 60, A), "$#,###.00") 51

Exercise 8: Fixing Issues What if the user does not type a number? Sub MonthlyPayments() A = InputBox("What is your Loan Amount?", "Amount Financed") If A = "" Then Exit Sub If IsNumeric(A) Then P = WorksheetFunction.Pmt(0.03 / 12, 60, A) PF = Format(P, "$#,###.00") S = MsgBox("Your Monthly Payment will be: " & PF,, "Amount Financed" ) Else S = MsgBox( You must enter a numeric value",, " Entry Error" ) Call MonthlyPayments End If End Sub Tip: To write the value of "P" to a cell: Worksheets("Sheet1").Range("A1").Value = P 52

Custom Functions with VBA Function FunctionName() VBA Code End Function 53

About Custom Functions in VBA Basic Structure You must give your function a name followed by ( ) which may contain multiple arguments that typically represent cell addresses, variables, or constants. Custom functions must begin with "Function" and end with "End Function". Function FunctionName(argument1,argument2,etc.) Lines of Code Lines of Code FunctionName = expression to return End Function Any code used to calculate your function goes here. The name of your function acts as a variable and is what the function ultimately returns. 54

Custom Function Exercise 1 Area of a Rectangle Function Area(L,W) Area = L * W End Function 55

Custom Function Exercise 2 Number of Blocks Needed in a Block Wall Function Blocks(FootLength, FootHeight) L = FootLength * 0.75 H = FootHeight * 1.5 Blocks = L * H End Function 7-1/2" 15-1/2" Assumes a standard block size of 15-1/2 Inches Long by 7-1/2 Inches High 56

Custom Function Exercise 3 Sum Cells to Right of Criteria We wish to add up each employee's total hours. 57

Custom Function Exercise 3 Offset(Y Position, X Position) Function SumC(Rng, Crit) For Each Item In Rng If Item.Value = Crit Then SumC = Item.Offset(0, 1).Value + SumC Next Item End Function 58

Custom Function Exercise 3 Declaring Variables Function SumC(Rng As Range, Crit As Range) Dim Item as Range For Each Item In Rng If Item.Value = Crit Then SumC = Item.Offset(0, 1).Value + SumC Next Item End Function 59

Help with Custom Functions No Smart Tags for Custom Functions Unfortunately, VBA does not provide a method of creating Smart Tags. Suggestion: Use Descriptive Arguments OR a) Type Function Name: =Blocks( b) Then Press Control + Shift + A a) Type Function Name: =Blocks( b) Click 60

Using Custom Functions in Other Files Three Methods Specify the File Name Specify the name of the file as a prefix to the function name. For example: =MyFunctions.xlsm!Area() Copy the Module Export the module containing the custom functions then import it into another file in the VBA Editor. Save File as an Add-in Save the Excel file containing your custom functions as an Add-in. Then load the Add-in. 61