Upload
irea-sweeney
View
233
Download
5
Tags:
Embed Size (px)
Citation preview
Sep-05 Slide:1VBA in Excel
VBA in Excel
Walter Milner
Sep-05 Slide:2VBA in Excel
Introduction
• VBA = Visual Basic for Applications• Enables end-user programming• In MS Office applications• Formulae and macros OK for simple actions,
but..• Advantages over formulae and macros:
– Multiple nested if is easy– Loops easy– Debugging easy
Sep-05 Slide:3VBA in Excel
Getting started
View..Toolbars..Control
Sep-05 Slide:4VBA in Excel
Add a button
Click the button buttonDrag on sheet to create one
Sep-05 Slide:5VBA in Excel
Format it
Right click on buttonSelect propertiesSet as requiredNote distinction between name and caption
Sep-05 Slide:6VBA in Excel
Program it
Right click buttonSelect View code:
Sep-05 Slide:7VBA in Excel
Test it
On Control Toolbox, click set squareThis toggles run/designClick the button
Sep-05 Slide:8VBA in Excel
Referring to cells
Private Sub CommandButton1_Click()Dim x As IntegerDim y As IntegerDim z As IntegerDim result As Integerx = Cells(1, 2).Valuey = Cells(2, 2).Valuez = Cells(3, 2).Valueresult = x * y + zCells(4, 2).Value = resultEnd Sub
Sep-05 Slide:9VBA in Excel
The VBA Excel Object model
• Hierarchy of classes• Use to refer to things
in an Excel application• Very large number of
classes, properties and methods
• Have to use on-screen help for reference
Sep-05 Slide:10VBA in Excel
The VBA Excel Object model
• Object is a thing• Property is some
property of an object• Method is something
the object can be told to do
• Event is something that can happen to the object
• Collection is a set of related objects
• Enumeration is action returning complete set of things (eg all fonts on system)
Sep-05 Slide:11VBA in Excel
Example object - Application
Sep-05 Slide:12VBA in Excel
Example properties of Application
Program a button which sets a value for this property and see what happens
Try it in a loop for a bizarre effect
Sep-05 Slide:13VBA in Excel
Example method
Program a button which calls the findfile method of the application
Sep-05 Slide:14VBA in Excel
Example collection -
Display the count property of the worksheets collection in a msgbox to show how many sheets there are in the workbook
Sep-05 Slide:15VBA in Excel
Using For Each .. Next in a collection
Private Sub CommandButton4_Click()Dim w As WorksheetFor Each w In Application.Worksheets MsgBox (w.Name)NextEnd Sub
Sep-05 Slide:16VBA in Excel
The RangeSelection property of the ActiveWindow
This is a Range objectSo it has the properties of a Range objectUse them to program a button which displays the totalof the numbers in the cells selected
Sep-05 Slide:17VBA in Excel
2d array exercise
Use the RangeSelection property to program a button which does a vertical flip of selected cells