700 likes | 801 Views
Spreadsheet-Based Decision Support Systems. Chapter 13: More on Objects. Prof. Name name@email.com Position (123) 456-7890 University Name. Overview. 13.1 Introduction 13.2 More on Properties and Methods 13.3 The With Construct
E N D
Spreadsheet-Based Decision Support Systems Chapter 13: More on Objects Prof. Name name@email.com Position (123) 456-7890 University Name
Overview • 13.1 Introduction • 13.2 More on Properties and Methods • 13.3 The With Construct • 13.4 Referencing in VBA • 13.5 Formulas in VBA • 13.6 Summary
Introduction • Various properties and methods for commonly manipulated objects. • The With construct. • Cell referencing and naming in VBA. • Excel formulas and functions in VBA.
More on Properties and Methods • Workbooks and worksheets • Ranges • Charts • Drawing objects • Application
Workbooks and Worksheets • Workbooks and Worksheets will not be manipulated too often. • There is one important method that both use • Activate; argument = (none) • There is one important property that Worksheets often use • Visible; value = True or False
Figures 13.1 and 13.2 • For example, we want to take some values from a workbook called “CH13 Workbook1” and transfer them into a chart or another form of analysis in a different workbook, “CH13 Workbook2.”
Figure 13.3 • Before copying the data, we need to specify which workbook is active. • To make a workbook active, we use the Activate method. • We can find Activate in the drop-down list of methods and properties for the workbook object.
Figure 13.4 • We copy the required cells of data for the first chart; and paste this data into “CH13 Workbook2”. • We use the Range object and the PasteSpecial method. This method takes one argument which specifies how the data should be pasted. • We use the argument xlPasteAll to paste the data as is.
Figure 13.5 • The code copies two different sets of data from one workbook to another.
Workbooks and Worksheets (cont’d) • We commonly make Worksheets visible and hidden as we navigate the user through the worksheets. • In all of our case studies, when the Workbook is initially opened, all (other than the “Welcome”) worksheets are hidden: • This is accomplished by using the Workbook_Open() event procedure which is executed on the open of the Workbook.
Figure 13.8 • The following code hides all worksheets, but the welcome sheet, when the application is opened.
Ranges • Ranges will probably be the objects we use the most in VBA. • There are several properties and methods we will learn for Ranges; we will group them into the following categories. • Color format • Border format • Values • Font format • Clearing • Copy and PasteSpecial
Range: Color Format • To change the color of any range of cells, use the Interior property; there are a few sub properties we can then use • ColorIndex; value = numerical color index • 3 = red • 5 = blue • 6 = yellow • 4 = green • Color; value = VB Constant or RGB Function • vbRed, vbBlue, vbYellow, vbGreen • ( 255, 0, 0) = red • ( 0, 0, 255) = blue • ( 255, 255, 0) = yellow • ( 0, 255, 0) = green • Pattern, value = XL Constant • xlSolid, xlChecker, …
Figure 13.10 • Let us create a solid, red range of cells on the “Welcome” sheet. Range(“A1:F12”).Interior.ColorIndex = 3 Range(“A1:F12”).Interior.Color = vbRed
Border Format • There is one main property and one main method we use to format range borders • Borders property • BordersAround method • The Borders property has several sub properties • LineStyle; value = xlDashed, xlSolid, … • Weight; value = xlThick, xlThin, … • Color; value = VB Constant, RGB Function • XL Constants = xlInsideHorizontal, xlEdgeBottom, … • The BordersAround method has several possible arguments • LineSytle:= xlDashed, xlSolid, … • Weight:= xlThick, xlThin, … • Color:= VB Constant, RGB Function
Figure 13.11 • Let us format a table on the “Input” Worksheet. • We name the sub procedure Borders(). • Activate the “Input” worksheet. • Specify the range where we want our table to be located, followed by the Borders property. • If we type another period after the Borders property, we see a list of its sub properties.
Figures 13.13 and 13.14 • We make the LineStyle of the first row of our range dashed instead of solid. • We also modify the color of the second and third row’s borders by using the Color sub property.
Figure 13.15 • Borders can also take predefined xl values to convey which set of borders should be modified.
Figure 13.16 • We specify a new range and set the Borders property to xlInsideHorizontal so that each row of our range has a line above and below it. • We set the weight of this border to xlThick.
Figure 13.18 • We use BorderAround method to set the line style and weight. • VBE provides us with a list of XL Constants for this argument’s values.
Figures 13.19 and 13.20 • Let us combine these properties, sub properties, and methods to format borders for several ranges of cells.
Values • Values are assigned to Ranges in VBA using the Value property. • The value of a range or cell can be • Text string • Numerical value • Basic Formula • Variable value
Figures 13.21 and 13.22 • Let us enter some different values into a spreadsheet.
Font Format • The Font property is used to format fonts of ranges. • There are several sub properties to use with the Font property. • Bold; value = True or False • Size; value = number • Color; value = VB Constant, RGB Function • ColorIndex; value = number • FontStyle; value = “style”
Figures 13.24 and 13.25 • Let us format the font of the values we just created by modifying the code.
Clearing • There are three common methods used to clear a range of cells. • Clear = clears everything • ClearContents = clears values or formulas only • ClearFormats = clears formats only • It is important to know which method is most appropriate for your worksheet.
Figures 13.28, 13.29, and 13.30 • Let us apply some of the clearing methods to the table we created in Examples 4 and 5.
Conditional Formatting • Also associated with formatting the Range object is the FormatConditions object, which places conditional formatting on a specified range of cells. • There are three main methods and several properties for this object. • Add method • Modify method • Delete method
Figure 13.31 • We place a conditional format on a range of cells so that: • Any cell with a value less than 10 becomes red: Range(“C1:C10”).‑FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:=10 Range(“C1:C10”).FormatConditions(1).Interior.Color = vbRed • Any blank cell becomes yellow: Range(“C1:C10”).‑FormatConditions.Add Type:= xlBlanksCondition Range(“C1:C10”).FormatConditions(2).Interior.Color = vbYellow
Charts • Charts have many parameters which can be modified using VBA code. • The four main parts of the chart to manipulate are: • Chart Type • Source Data • Chart Options • Chart Location • The formatting of the chart can also be changed with VBA.
Two Chart Objects • When modifying charts with VBA, we will use two different chart objects • Charts • ActiveChart • The methods we will use with the Chart object are • Add; arguments = Before, After, Count • Copy • Delete • Select
Active Chart • The ActiveChart object will be used to set all other chart parameters and formatting. • Some main chart properties are • ChartType; value = XL Constants • HasLegend; value = True, False • HasTitle; value = True, False • ChartTitle; value = text name • Some main methods are • SetSourceData; arguments = Source, PlotBy • Location; arguments = Where, Name
Using Active Chart • Before using the ActiveChart object, we will need to Select or Add a particular Chart object. • When creating a new chart, we must set the four main parts of the chart using the following • Chart Type: ChartType • Source Data: SetSourceData • Chart Location: Location • Chart Options: HasLegend, HasTitle, etc.
Figures 13.32 and 13.33 • The Graph() procedure creates a chart from a table of data.
Further Chart Modification • We can modify the format of a chart using properties such as: • SeriesCollection • Add, Extend, HasDataLabels, Interior, ColorIndex • We can modify some chart parameters using methods such as: • ApplyCustomType; arguments = ChartType
Drawing Objects • Drawing objects, or shapes, can be useful to help the user visualize a problem scenario or suggested solution. • We can use the commands listed on the Insert>Illustration group on the Ribbon to draw a variety of shapes on the spreadsheet. • These objects can also be created and/or formatted in VBA code. • There are four main objects we use to create/format shapes in VBA. • ActiveSheet • Shape • Selection • ShapeRange
Creating Drawing Objects • There is one main method used to create a drawing object. • AddShape; arguments = Type, Left/Top, Width/Height • The Type argument can be equal to any MsoAutoShapeType • Left/Top sets the position of the shape in respect to the upper-left hand corner of the spreadsheet • Width/Height sets the width and height of the shape • This method is used with the Shapes object which is used with the Worksheets object (or ActiveSheet object).
Naming Drawing Objects • Naming drawing objects can greatly help in modifying them using VBA code. • To name a drawing object, we use the Name property. • First select an object in Excel to see what the default name is. • This is necessary so that you can select the appropriate shape first before naming it. • Then we will use the Select method for the Shapes object and then the Selection object to use the Name property.
Figures 13.37 and 13.38 • We can select and name a circle object.
Formatting Drawing Objects • We can use several different VBA properties to format drawing objects; these are a few. • Fill • ForeColor • SchemeColor • Line • Weight • EndArrowheadStyle, EndArrowheadWeight, EndArrowheadLength • BeginArrowheadStyle, BeginArrowheadWeight, BeginArrowheadLength • These properties are used with the ShapeRange object which is used with the Selection object.
Figures 13.39 and 13.40 • Suppose we have have created and named several circles and lines to make a network (of nodes and arcs). Let us format these drawing objects.
The Application Object • The Application object is useful for some common functions as well as some other features for running VBA code. • There are two main properties we will use for this object. • ScreenUpdating; value = True, False • CutCopyMode; value = True, False • There is also one main method we will use. • Wait; arguments = Now, TimeValue
The Application Object (cont’d) • The ScreenUpdating property helps the code run more efficiently since the Excel screen does not need to be updated after every action in the code. • The CutCopyMode property prevents a flashing box from remaining around the range which has been copied after a macro has been run. • These are both useful for example, when copying and pasting large data.
Figures 13.44, 13.45, and 13.46 • Compare the results with and without the property CutCopyMode = False.
The Wait Method • The Wait method is frequently used when performing a Simulation in Excel. • Waitpauses the macro while it is being run until a specified time is reached. Application.Wait (Now + TimeValue()) • The Now argument calculates the current time and the TimeValue argument gives an integer-valued time amount to add to the current time. • The macro will play again once Now plus TimeValue time is reached.
Figures 13.47 and 13.48 • Let us now format the two tables in our example.
The With Construct • The With construct is basically used to set several properties of one object in an enclosed statement. • For example, compare these two sets of code. Range(“A1:C8”).Interior.Color = vbRed Range(“A1:C8”).Font.Bold = True Range(“A1:C8”).Font.Name = “Arial” Range(“A1:C8”).Borders(xlEdgeBottom).LineStyle = xlDash With Range(“A1:C8”) .Interior.Color = vbRed .Font.Bold = True .Font.Name = “Arial” .Borders(xlEdgeBottom). LineStyle = xlDash End With
Referencing and Names in VBA • Referencing ranges and cells • Naming ranges
Referencing and Names in VBA • As we have seen, the most common way to name an object in VBA is with the Name property. • There are several ways to reference ranges and cells using VBA. • Offset • Cells • Rows • Columns • EntireRow • EntireColumn • End
Offset vs Cells • The Offset property: • Considers the named range to be in the 0th row and 0th column. • It then offsets the range selection by a certain row count to above (if pos., below if neg.) and column count to the right (if pos., left if neg.) of this named range. • The Cells property: • Considers the named range to be in the 1st row and 1st column. • It then finds the cell in the x-th position above (if pos., below if neg.) and y-th position to the right (if pos., left if neg.) of the named range.