Presentation is loading. Please wait.

Presentation is loading. Please wait.

ISOM3230 Business Applications Programming

Similar presentations


Presentation on theme: "ISOM3230 Business Applications Programming"— Presentation transcript:

1 ISOM3230 Business Applications Programming
VBA Basic

2 Learning Outcomes apply programming concepts to solve business problems describe the logic and flows of given programs predict the output of a program write programs with common programming practices identify and fix logical and run-time errors in programs

3 Outline 1. Developer Tab 16. Operator 2. Enable Macro 17.
Operator Precedence 3. Trust Center 18. Sub and Function 4. VBA Editor + Module 19. Passing Value 5. Immediate Window 20. If… End If 6. Comment 21. Select Case 7. Debug.Print 22. For… Next Loop 8. MsgBox 23. Do While/Until… Loop 9. InputBox 24. Do … Loop While/ Until 10. Data Type 25. For Each… Next 11. Constant 26. Exit Do/ Exit For 12. Declaring Variable 27. Array 13. Converting Data Type 28. Object Statement 14. Option Explicit 29. Excel Environment 15. Scope of Variable Reference

4 Environment + Basic Developer Tab Object Variable If … End If
6-14 Environment + Basic Developer Tab 33 Obj Object Variable Enable Macro Condi. Stat. If … End If 34-37 Trust Center Select Case Iteration For … Next Loop VBA Editor + Module 38-43 Do While/Until … Loop Immediate Window Do … Loop While/ Until Comment, _, and Main For Each … Next In/output Debug.Print 15-17 Exit Do/ Exit For MsgBox Array Array InputBox 44-49 Option Base Variable Data Type 18-23 Array Initialization Constant Redim + Preserve Declare & Assign Lbound + Ubound Converting Data Type Dynamic Array Option Explicit Scope of Variable 50-56 Object Statement Operator Operator 57 Excel Environment 24-28 Operator Precedence Ref. Color Constant 58-64 Application.InputBox Method Sub and Function 29-32 Passing Value Monitor a Variable

5 End

6 Developer Tab

7 Enable Macro

8 Trust Center (1) 046 8

9 Trust Center (2) 046

10 VBA Editor + Module Alt+F11 003

11 Immediate Window Press Ctrl+G to open the Immediate Window 044

12 Use of Immediate Window (1)
Tips 1 You may use Immediate Window to execute statements. For example, after typing "Worksheets.Add" and then press Enter, a new worksheet will be created. 044

13 Use of Immediate Window (2)
Tips 2 You may use Immediate Window to show the result value of a variable or expression. Type "? Expression" and press Enter, then the window will show the result of the expression 044

14 Comment, _, and Main Subroutine
- A new VBA program MUST BE stored in a NEW subroutine (or known as Main Subroutine) which is created by programmers - The Name of the subroutine MUST BE a unique and valid name 008 Remarks: ’ and Rem are used to insert comments into a program _ is used to indicate that the current statement is not yet ended and the next line is part of the current statement The Naming Rules in VBA are the same as VB

15 Debug.Print 044

16 MsgBox 022 Remark: Messagebox.Show() is not available in VBA

17 InputBox InputBox(Prompt, Title, Default ) Remark: OK returns a String
023 Remark: OK returns a String Cancel returns Nothing

18 Data Type DataType Default Value Boolean False Integer Double Date
Double Date 12:00:00 AM December 30, 1899 String “” Variant Empty Remark: Variant is similar to the Object data type in VB

19 Constant Declaring a constant _ is used here 008

20 Declaring Variable and Assigning Value
Must be separated 004

21 Converting Data Type Remarks:
Build-in Constant Remarks: All of the following are available in VBA CBool() CDbl() CStr() CInt() CDate() 010

22 Option Explicit 005

23 Scope of Variable Public Level (Public) Module Level Global Variable
(Dim, Private) 006 Global Variable Local Variable

24 Operator (1) Arithmetic Operator Operator Example Result Exponential ^
6 ^ 4 1296 Multiplication * 6 * 4 24 Division / 6 / 4 1.5 Integral Division \ 6 \ 4 1 Remainder Mod 6 Mod 4 2 Addition + 6 + 4 10 Subtraction - 6 - 4 011

25 Operator (2) Comparison Operator Operator Example Result Smaller than
< 6 < 4 False Smaller or Equal to <= 6 <= 4 Greater than > 6 > 4 True Greater or Equal to >= 6 >= 4 Equal to = 6 = 4 Not equal to <> 6 <> 4 Object comparison Is objA Is objB True/False String pattern comparison Like “UST“ Like "*me*" 011 When comparing objects, Is must be used. So objA = objB  Runtime Error

26 Operator (3) String Operator Logic (or Boolean) Operator Operator
Example Result String Connection & "ISOM" & "3230" "ISOM3230" + "ISOM" + "3230" "ISOM" (Error) Operator Example Result Logical conjunction And 6 > 4 And 8 = 9 False Logical disjunction Or 6 > 4 Or 8 = 9 True Logical negation Not Not 6 > 4 011

27 Operator Precedence (1)
Precedence Rules Operators are evaluated by following the precedence order table (next slide) Parentheses can override the order of precedence and the left associativity Operators with equal precedence are evaluated left to right in the order in which they appear in the expression

28 Operator Precedence (2)
Type from Highest to Lowest Parentheses () Arithmetic and Concatenation ^ - (Negation) * / \ Mod + - (Add and subtract) & Comparison =, <>, <, <=,>,>=, Like, Is Logical Not And Or Xor Eqv Imp a + = 1 ‘ Error in VBA

29 Sub and Function (1) 002

30 Sub and Function (2) When the return value of a function will be used immediately, brackets MUST be used. Sub test() Dim msg As Integer msg = MsgBox("Test 1", vbOKOnly) ' OK msg = msgbox "Test 2", vbOkOnly ' Error MsgBox "Test 3", vbOKOnly ' OK MsgBox("Test 4", vbOKOnly) ' Error End Sub 002

31 Passing Value to Method (1)
037 ArgumentName b ArgumentName a Remark := is to assign a value to a specific argument: ArgumentName := Value

32 Passing Value to Method (2)
038

33 Object Variable Must use Set Object variable name Class name
Range object Range object .Value property Reset the object 007

34 If-Then 026

35 If-Then-Else 027

36 If-Then-Elseif 028

37 Select Case 029

38 For … Next Loop The counter value i must be declared outside For loop
030

39 Do While … Loop Cells() will return a Range Object Range Object
031 Color value Background color Remark: Cells( y , x ) Where x, and y are coordinates of a worksheet

40 Do Until … Loop Month(Date)
A function returns an Integer specifying whole number between 1 and 12, inclusive, representing the month of the year. 032

41 Do … Loop While / Until Remark: Cells( y , x )
033 Remark: Cells( y , x ) Where x can be a letter, instead of an integer

42 For Each … Next Update Remark:
034 Remark: - The Range Object covers data cells from B2 to D7 - Range( ”B2” , ”D7” ) same as Range( ”B2:D7” )

43 Exit Do / Exit For 035

44 Array Index starts from 0 Remark:
012 Remark: - Range( ”B2” ) same as Range( ”B2” ).Value

45 Option Base Option Base 1 / Option Base 0
The default array lower bound index will become 1 If you also specify the lower bound index during declaration: Dim Arr(2 To 5) As String Then Option Base will NOT change the lower bound index in this array 013

46 Array Initialization This also works Must use Variant
MUST use Array keyword 014

47 Redim + Preserve 017

48 LBound + UBound 018 Calculating the array size: UBound(ArrayName) - LBound(ArrayName) + 1

49 Dynamic Array Remark: Range( ”A1” ).End(xlDown).Row
016 Remark: Range( ”A1” ).End(xlDown).Row Count the total number of valid data starting from A1 An empty cell contains invalid data

50 Object and Dot (.) Operator
To access a property or method of an object, use the dot (.) operator between the object name (left operand) and the property / method name (right operand) Object Either Property (≈Variable) or Method Sub() Function() Workbooks.Count Dot Operator

51 Object and Dot (.) Operator
Object.Property Object.Method Object.Sub() Object.Function()

52 A complicated example Range("B4").End(xlup).Select
Object Method Object Select Cannot be determined: Maybe Sub() or Function() This Object can be generated from either Property (Object Variable) or Function (Returning Object). Function’s Returning Object: Function TestFunc() as Human Return New Human End Function Object variable: Objvar Dim Objvar as New Human (where Human is a class)

53 Model Answer: Range("B4").End(xlUp).Select

54 Range("B4").End(xlUp).Select
1 2 XlDirection Description xlDown Down xlToLeft To left xlToRight To right xlUp Up 3 4 Returning Object One parameter type is XIDirection

55 What is the data type of Return Value?
Range.Select 1 2 3 4 What is the data type of Return Value? Mistake!!!

56 Range.Select

57 Workbook, Worksheet, and Range Objects
Workbook Object a range of one cell Range Object a range of 5 cells Worksheet Object current sheet tab

58 Reference

59 Color Constant For reference
Color constants: Miscellaneous Constants Constant Description vbBlack Black vbBlue Blue vbGreen Green vbCyan Cyan vbRed Red vbMagenta Magenta vbYellow Yellow vbWhite White Constant Description vbCrLf Carriage return–linefeed combination vbNewLine Platform-specific new line character; whichever is appropriate for current platform vbTab Tab character

60 Application.InputBox with specific parameters
For reference Application.InputBox with specific parameters Application.InputBox(Prompt := Message, _ Title := Caption, _ Type := DataType) 024

61 Monitor a variable (1) For reference Step 1
Highlight the variable you want to monitor, right click and then select “Add Watch” 043

62 Monitor a variable (2) For reference Step 2
Select the Watch Type, and then press OK 043

63 Monitor a variable (3) For reference Step 3
The Watch Window will be shown. Click on the grey bar near your code to set a breakpoint. The program will pause once it reaches the breakpoint. 043

64 Monitor a variable (4) For reference Step 4
Press F5 to run the Sub. The program will pause at the breakpoint. The current value of the variable you watched will be shown on the Watch Window. You may also expand the content of the variable. 043


Download ppt "ISOM3230 Business Applications Programming"

Similar presentations


Ads by Google