BY CATEGORY▼
- VIDEOS HOME PAGE
- .NET (14)
- Business Intelligence (40)
- Integration Services (19)
- Macros and Programming (82)
- Microsoft Excel (70)
- Microsoft Office (92)
- Miscellaneous (1)
- Power BI (35)
- Power Platform (35)
- Python (31)
- Report Builder (107)
- Reporting Services (113)
- SQL (42)
- Visual Basic for Applications (215)
- Visual C# (14)
VBA CATEGORIES▼
- Excel VBA - Basics (24)
- VBA User Forms (22)
- Excel VBA - pivot tables (9)
- Excel VBA - charts (6)
- VBA - advanced (14)
- VBA - working with files (12)
- VBA - linking applications (12)
- VBA - working with Outlook (14)
- Built-in VBA functions (9)
- VBA - working with data (57)
- VBA - scraping websites (25)
- VBA - working with shapes (5)
- VBA - classes and structures (6)
EXCEL VBA - BASICS VIDEOS▼
- Excel VBA Part 1 - The VB Editor
- Excel VBA Part 2 - Writing Your First Macro
- Excel VBA Part 3 - What To Do When Things Go Wrong
- Excel VBA Part 4 - Buttons, Toolbars and Keyboard Shortcuts
- Excel VBA Part 5 - Selecting Cells
- Excel VBA Part 6 - Worksheets, Charts and Sheets
- Excel VBA Part 7 - Working with Workbooks
- Excel VBA Part 8 - Variables in VBA
- Excel VBA Part 9 - Object Variables
- Excel VBA Part 10 - Message Boxes
- Excel VBA Part 11 - Input Boxes
- Excel VBA Part 11a - Application.InputBox
- Excel VBA Part 12 - With Statements
- Excel VBA Part 13.1 - If Statements in VBA
- Excel VBA Part 14.1- Select Case Statements
- Excel VBA Part 15.1 - Do Until and Do While Loops
- Excel VBA Part 16 - For Next Loops
- Excel VBA Part 17 - For Each Loops
- Excel VBA Part 18 - Creating Functions
- Excel VBA Part 19 - Error Handling
- Excel VBA Part 20 - Event Procedures
- Excel VBA Part 21 - User Forms
- Why do we write If Not Is Nothing in Excel VBA?
- How do I hide all but the selected sheets in Excel?
Excel VBA - Basics videos | Excel VBA Part 18 - Creating Functions
Posted by Andrew Gould on 17 February 2014
A VBA function is a procedure that can return a value and this video teaches you how to create them. You'll learn how to declare a function and how to add parameters, including optional parameters and default values. You'll also see several ways to call the functions you've written, including from other VBA procedures and from an Excel worksheet. The video also talks about how to rewrite existing subroutines to replace repetitive code with functions.
See our full range of VBA training resources, or test your knowledge of VBA with one of our VBA skills assessment tests.
There are no files which go with this video.
There are no exercises for this video.
Making a video bigger
You can increase the size of your video to make it fill the screen like this:

Play your video (the icons shown won't appear until you do), then click on the full screen icon which appears as shown at its bottom right-hand corner.
When you've finished viewing a video in full screen mode, just press the Esc key to return to normal view.
Improving the quality of a video
To improve the quality of a video, first click on the Settings icon:

Make sure you're playing your video so that the icons shown appear, then click on this gear icon at the bottom right-hand corner.
Choose to change the video quality:

Click on Quality as shown to bring up the submenu.
The higher the number you choose, the better will be your video quality (but the slower the connection speed):

Don't choose the HD option unless you have a fast enough connection speed to support it!
Is your Wise Owl speaking too slowly (or too quickly)? You can also use the Settings menu above to change your playback speed.
Usually you create a function of a type, such as:
Public Function MyFunc (arg As String) As String
End Function
However, I have come across functions such as:
Public Function MyFunc (arg As Someclass) As Dictionary
End Function
How does one go about learning this?
The only difference with this sort of function is that it returns an object, rather than a string of text. To set the value for this function, you'd need to include at the end a line of code beginning:
SET MyFunc = ...
Note the SET keyword because you're setting an object variable. If this doesn't make sense, I'd go back to the VBA series of tutorials and work your way through them.