Presentation is loading. Please wait.

Presentation is loading. Please wait.

ME 142 Engineering Computation I Using Subroutines Effectively.

Similar presentations


Presentation on theme: "ME 142 Engineering Computation I Using Subroutines Effectively."— Presentation transcript:

1 ME 142 Engineering Computation I Using Subroutines Effectively

2 Key Concepts Functions vs. Subprograms Using Subroutines Effectively Declaring Variables

3 Functions vs. Subprograms

4  A Function is a self-contained program that receives input through arguments (or parameters), performs calculations, and returns a result  A Subprogram is similar to a function, except it does not return a result

5 Functions vs. Subprograms  Functions may be used in formulas or expressions  Excel provides hundreds of built-in functions  Functions return a result but may not write to other cells in the spreadsheet  Subprograms may write directly to cells in the spreadsheet

6 Functions vs. Subprograms  Functions are launched from a formula  Subprograms may be launched from a button or as any macro  Subprograms offer the most flexibility and power, including the use of custom dialog boxes

7 Using Subroutines Effectively

8  Longer programs are commonly split up into smaller programs, sometimes referred to as subroutines  Typical scenario: Main program passes information to a subroutine via argument list The subroutine performs calculations and returns results to main program

9 Using Subroutines Effectively  Why might subroutines be useful?

10 Sub MathOp() 'Demonstrates using subroutines 'Key Variables: ' Oper - math operation (* - + / ^) ‘Get input from spreadsheet A = Cells(1, 2) B = Cells(2, 2) Oper = Cells(2, 1) 'Call subroutine to perform calculation Call Calculate(A, B, Oper, C) 'Output results to spreadsheet Cells(3, 2) = C End Sub Sub Calculate(x, y, Oper, z) 'subroutine to perform math operation If Oper = "*" Then z = x * y ElseIf Oper = "-" Then z = x - y ElseIf Oper = "+" Then z = x + y ElseIf Oper = "/" Then z = x / y ElseIf Oper = "^" Then z = x ^ y Else MsgBox "Invalid Operation" z = "Error" End If End Sub

11 Example Problem  Write a program to convert a series of temperatures from Fahrenheit to Celsius, Kelvin, and Rankine using a main program and associated subroutines. The main program should call the following subroutines: GetInput – This subroutine loops to read temperatures from the spreadsheet, storing them in a dynamic array. ConvertTemp – This subroutine performs all the temperature conversions, and stores them in the dynamic array, utilizing custom temperature conversion functions. WriteOutput – This subroutine writes the contents of the array back to the spreadsheet.

12 Declaring Variables

13  VBA supports a variety of Data Types, the most common being: Integer Single precision real Double precision real String Variant

14 Declaring Variables  If you don’t declare the data type for a variable, VBA uses the default data type of variant  Data stored as variant changes types depending on what you do with it  With variant data types, VBA automatically handles conversion  Trade-off is you sacrifice speed and memory

15 Why Declare Variables  Declaring variables makes your program run faster and use memory more efficiently  You may “force” yourself to declare all variables by including “Option Explicit” as the first statement of your VBA module Option Explicit  When this statement is present, you won’t be able to run your code if it contains any undeclared variables

16 Variable Declaration Examples  Dim x As Integer  Dim y As Single  Dim z As Double  Dim q As String  Dim a As Single, b As Single, c As Single

17 Life of Variables  Variables may declared at 3 levels Procedure Module All Modules  For our purposes, Procedure variables will be sufficient

18 Procedure Variables  Most efficient because VBA frees up the memory they use when the procedure ends  To declare, simply use the Dim statement within the procedure Dim x as Single

19 Static Variables  Static variables retain their value when the procedure ends Static B as Integer  Could be used to keep a running total or track the number of times a program is called  Variables are purged/reset when The workbook is closed or reopened The reset toolbar button is clicked When “end” statement/error message is executed

20 Review Questions

21 Review Questions Functions A function may be launched directly from a button on a spreadsheet or a hot-key? A.True B.False

22 Review Questions Functions Which of the following variables declarations are invalid: A.Dim A as Integer B.Dim A as Integer, B as Integer C.Dim A B as Integer D.Dim A as Integer, B as Double E.More than one of the above are invalid

23 Homework Help ‘n Hints


Download ppt "ME 142 Engineering Computation I Using Subroutines Effectively."

Similar presentations


Ads by Google