Start with an empty worksheet and select the B1 cell. Turn on the macro recorder and specify the macro
name as MonthNames2. Enter the shortcut as uppercase M —the recorder won’t let you use lowercase m
again. Click OK and select the Use Relative References button on the Developer tab of the Ribbon.
Type Jan and the other month names, as you did when recording MonthNames1. Select cells B1:G1 and
click the Bold and Italic buttons on the Home tab of the Ribbon.
Finally, select cell B2, the cell under Jan, and turn off the recorder.
Before running MonthNames2, select a starting cell, such as A10. You will find that the macro now types
the month names across row 10, starting in column A, and finishes by selecting the cell under the start-
ing cell.
Before you record a macro that selects cells, you need to think about whether to use absolute or relative
reference recording. If you are selecting input cells for data entry, or for a print area, you will probably
want to record with absolute references. If you want to be able to run your macro in different areas of
your worksheet, you will probably want to record with relative references.
If you are trying to reproduce the effect of the Ctrl+arrow keys to select the last cell in a column or row
of data, you should record with relative references. You can even switch between relative and absolute
reference recording in the middle of a macro, if you want. You might want to select the top of a column
with an absolute reference, switch to relative references, and use Ctrl+down arrow to get to the bottom
of the column and an extra down arrow to go to the first empty cell.
Excel 2000 was the first version of Excel to let you successfully record selecting a block of cells of vari-
able height and width using the Ctrl key. If you start at the top left-hand corner of a block of data, you
can hold down the Shift and Ctrl keys and press the down arrow and then the right arrow to select the
whole block (as long as there are no gaps in the data). If you record these operations with relative refer-
encing, you can use the macro to select a block of different dimensions. Previous versions of Excel
recorded an absolute selection of the original block size, regardless of recording mode.
The Visual Basic Editor
It is now time to see what has been going on behind the scenes. If you want to understand macros, be
able to modify your macros, and tap into the full power of VBA, you need to know how to use the Visual
Basic Editor (VBE). The VBE runs in its own window, separate from the Excel window. You can activate
it in many ways.
First, you can activate it by clicking the Visual Basic button on the Developer tab of the Ribbon. You can
also activate it by holding down the Alt key and pressing the F11 key. Alt+F11 acts as a toggle, taking
Make sure you select B1:G1 from left to right, so that B1 is the active cell. There is a
small kink in the recording process that can cause errors in the recorded macro if
you select cells from right to left or from bottom to top. Always select from the top-
left corner when recording relatively. This has been a problem with all versions of
Excel VBA.
8
Chapter 1: Primer in Excel VBA
Pdf form save in reader - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
adding signature to pdf form; pdf form maker
Pdf form save in reader - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
cannot save pdf form in reader; add fields to pdf form
you between the Excel window and the VBE window. If you want to edit a specific macro, you can use
the Macros button on the Developer tab of the Ribbon or the Play Macro button on the left of the status
bar to open the Macro dialog box, select the macro, and click the Edit button. The VBE window will look
something like Figure 1-5.
Figure 1-5
It is quite possible that you will see nothing but the menu bar when you switch to the VBE window. If you
can’t see the toolbars, use View ➪Toolbars and click the Standard toolbar. Use View➪Project Explorer
and View ➪Properties Window to show the windows on the left. If you can’t see the code module on the
right, double-click the icon for Module1 in the Project Explorer window.
Code Modules
All macros reside in code modules like the one on the right of the VBE window in Figure 1-5. There are
two types of code modules—standard modules and class modules. The one you see on the right is a
standard module. You can use class modules to create your own objects. You won’t need to know much
about class modules until you are working at a very advanced level. See Chapter 15 for more details on
how to use class modules.
Some class modules have already been set up for you. They are associated with each worksheet in your
workbook, and there is one for the entire workbook. You can see them in the Project Explorer window, in
the folder called Microsoft Excel Objects. You will find out more about them later in this chapter.
9
Chapter 1: Primer in Excel VBA
C# PDF: PDF Document Viewer & Reader SDK for Windows Forms
SaveFile(String filePath): Save PDF document file to a specified path form (Here, we take a blank form as an open a file dialog and load your PDF document in
adding an image to a pdf form; add fillable fields to pdf
VB.NET Image: How to Save Image & Print Image Using VB.NET
printing multi-page document files, like PDF and Word is used to illustrate how to save a sample RE__Test Public Partial Class Form1 Inherits Form Public Sub New
adding a signature to a pdf form; add submit button to pdf form
You can add as many code modules to your workbook as you like. The macro recorder has inserted the
one named Module1. Each module can contain many macros. For a small application, you would proba-
bly keep all your macros in one module. For larger projects, you can organize your code better by filing
unrelated macros in separate modules.
Procedures
In VBA, macros are referred to as procedures. There are two types of procedures —sub procedures and
function procedures. You will find out about function procedures in the next section. The macro recorder
can only produce sub procedures. You can see the MonthNames1 sub procedure set up by the recorder in
Figure 1-5.
Sub procedures start with the keyword Sub, followed by the name of the procedure and opening and
closing parentheses. The end of a sub procedure is marked by the keywords EndSub. Although it is not
mandatory, the code within the sub procedure is normally indented to make it stand out from the start
and end of the procedure, so that the whole procedure is easier to read. Further indentation is normally
used to distinguish sections of code such as Iftests and looping structures. For example:
If ActiveCell.Value = 10 Then
ActiveCell.Font.Bold = True
End If
Any lines starting with a single quote are comment lines, which are ignored by VBA. They are added to
provide documentation, which is a very important component of good programming practice. You can
also add comments to the right of lines of code. For example:
Range(“B1”).Select   ‘Select the B1 cell
At this stage, the code may not make perfect sense, but you should be able to make out roughly what is
going on. If you look at the code in MonthNames1, you will see that cells are being selected and then the
month names are assigned to the active cell formula. You can edit some parts of the code, so if you had
spelled a month name incorrectly, you could fix it; or you could identify and remove the line that sets the
font to bold; or you can select and delete an entire macro.
Notice the differences between MonthNames1 and MonthNames2MonthNames1 selects specific cells
such as B1 and C1. MonthNames2 uses Offset to select a cell that is zero rows down and one column
to the right from the active cell. Already, you are starting to get a feel for the VBA language.
The Project Explorer
The Project Explorer is an essential navigation tool. In VBA, each workbook contains a project. The
Project Explorer displays all the open projects and the component parts of those projects, as you can
see in Figure 1-6.
You can use the Project Explorer to locate and activate the code modules in your project. You can double-
click a module icon to open and activate that module. You can also insert and remove code modules in
the Project Explorer. Right-click anywhere in the Project Explorer window, and from the context menu
select Insert to add a new standard module, class module, or UserForm.
To remove Module1, right-click it and choose Remove Module1. Note that you can’t do this with the
modules associated with workbook or worksheet objects. You can also export the code in a module to a
separate text file, or import code from a text file.
10
Chapter 1: Primer in Excel VBA
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Merge Microsoft Office Word, Excel and PowerPoint data to PDF form. Append one PDF file to the end of another and save to a single PDF file.
create a pdf form in word; change font in pdf form field
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
this RasterEdge XDoc.PDF SDK, you can simply delete a single page from a PDF document using VB.NET or remove any page from a PDF document and save to local
change pdf to fillable form; change font size in pdf form field
Figure 1-6
The Properties Window
The Properties window shows you the properties that can be changed at design time for the currently
active object in the Project Explorer window. For example, if you click Sheet1 in the Project Explorer, the
Sheet1 properties are displayed in the Properties window, as shown in Figure 1-7. The ScrollArea
property has been set to A1:D10, to restrict users to that area of the worksheet.
Figure 1-7
You can get to the help screen associated with any property very easily. Just select the property, such as
the ScrollArea property, which is selected in Figure 1-7, and press F1.
Other Ways to Run Macros
You have seen how to run macros with shortcuts and how to run them from the Ribbon and status bar
macro buttons. Neither method is particularly friendly. You need to be very familiar with your macros to
be comfortable with these techniques. You can make your macros much more accessible by attaching
them to buttons.
If the macro is worksheet-specific, and will only be used in a particular part of the worksheet, then it is
suitable to use a button that has been embedded in the worksheet at the appropriate location. If you
want to be able to use a macro in any worksheet or workbook and in any location in a worksheet, it is
appropriate to attach the macro to a button on the Quick Access Toolbar.
11
Chapter 1: Primer in Excel VBA
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
to extract single or multiple pages from adobe PDF file and save into a The portable document format, known as PDF document, is a widely-used form of file
change font size pdf form; changing font size in pdf form
C# Image: Save or Print Document and Image in Web Viewer
or image, you can easily save the changes to DLL Library, including documents TIFF, PDF, Excel, Word string fileName = Request.Form["saveFileName"]; string fid
change font on pdf form; pdf add signature field
There are many other objects that you can attach macros to, including combo boxes, list boxes, scrollbars,
checkboxes, and option buttons. These are all referred to as controls. (See Chapter 11 for more informa-
tion on controls.) You can also attach macros to graphic objects in the worksheet, such as shapes created
with the Shapes button on the Insert tab of the Ribbon.
Worksheet Buttons
Excel 2007 has two different sets of controls that can be embedded in worksheets. One set has been
inherited from the Forms toolbar in previous versions, and the other has been inherited from the Control
ToolBox toolbar in previous versions. The Forms toolbar appeared in Excel 5 and 95. The Forms controls
can be embedded in a worksheet and are also used with Excel 5 and 95 dialog sheets to create dialog
boxes. Excel 97 introduced the newer ActiveX controls on the Control ToolBox toolbar. You can embed
ActiveX controls in a worksheet or use them on UserForms, in the VBE, to create dialog boxes.
To create controls in Excel 2007, select the Developer tab on the Ribbon. In the Controls group, click the
Insert button to open the window shown in Figure 1-8.
Figure 1-8
For compatibility with the older versions of Excel, both sets of controls and techniques for creating dia-
log boxes are supported in Excel 97 and higher. If you have no need to maintain backward compatibility
with Excel 5 and 95, you can use just the ActiveX controls.
Forms Controls
Agood reason for using the Forms controls is that they are simpler to use than the ActiveX controls,
because they do not have all the features of ActiveX controls. For example, Forms controls can only
respond to a single, predefined event, which is usually the mouse-click event. ActiveX controls can
respond to many events, such as a mouse click, a double-click, or pressing a key on the keyboard. If you
have no need of such features, you might prefer the simplicity of Forms controls. To create a Forms but-
ton in a worksheet, click the top-left button in the Controls dialog box, opened from the Insert button on
the Developer tab of the Ribbon.
You can now draw the button in your worksheet by clicking where you want a corner of the button to
appear and dragging to where you want the diagonally opposite corner to appear. The Assign Macro
dialog box will appear as shown in Figure 1-9, and you can select the macro to attach to the button.
12
Chapter 1: Primer in Excel VBA
C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
Description: Convert to DOCX/TIFF with specified zoom value and save it into stream. Parameters: zoomValue, The magnification of the original PDF page size.
create a pdf form; convert word to editable pdf form
C# Create PDF from Tiff Library to convert tif images to PDF in C#
Description: Convert to PDF and save it on the disk. Parameters: Name, Description, Valid Value. Description: Convert to PDF and save it into stream. Parameters:
add form fields to pdf without acrobat; add forms to pdf
Figure 1-9
Click OK to complete the assignment. You can then edit the text on the button to give a more meaningful
indication of its function. After you click a worksheet cell, you can click the button to run the attached
macro. If you need to edit the button and it is not already selected, right-click it to select the control and
display a context menu. If you don’t want the context menu, hold down Ctrl and left-click or right-click
the button to select it. (Don’t drag the mouse while you hold down Ctrl, or you will create a copy of the
button.)
If you want to align the button with the worksheet gridlines, hold down Alt as you draw it with the
mouse. If you have already drawn the button, select it and hold down Alt as you drag any of the white
boxes that appear on the corners and edges of the button. The edge or corner you drag will snap to the
nearest gridline.
ActiveX Controls
To create an ActiveX command button control, click the top-left button in the ActiveX Controls section of
the Controls dialog box, opened from the Insert button on the Developer tab of the Ribbon. When you
draw your button in the worksheet, you enter into design mode. When you are in design mode, you can
select a control with a left-click and edit it. You must turn off design mode if you want the new control to
respond to events. You can do this by clicking the Design Mode button on the Developer tab of the
Ribbon so it is no longer highlighted. Figure 1-10 shows the Design Mode button as it appears when
design mode is active, after the insertion of the ActiveX control.
13
Chapter 1: Primer in Excel VBA
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
key. Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Powerful components
can save pdf form data; create a form in pdf
C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
Description: Convert to PDF/TIFF and save it on the disk. Parameters: Description: Convert to PDF/TIFF and save it into stream. Parameters:
allow saving of pdf form; pdf form creation
Figure 1-10
You are not prompted to assign a macro to the ActiveX command button, but you do need to write a
click-event procedure for the button. An event procedure is a sub procedure that is executed when, for
example, you click a button. To do this, make sure you are still in design mode and double-click the
command button to open the VBE window and display the code module behind the worksheet. The Sub
and EndSubstatement lines for your code will have been inserted in the module, and you can add in the
code necessary to run the MonthNames2 macro, as shown in Figure 1-11.
Figure 1-11
To run this code, switch back to the worksheet, turn off design mode, and click the command button.
If you want to make changes to the command button, you need to return to design mode by clicking the
Design Mode button. You can then select the command button and change its size and position on the
worksheet. You can also display its properties by right-clicking it and choosing Properties to display the
window shown in Figure 1-12.
14
Chapter 1: Primer in Excel VBA
Figure 1-12
To change the text on the command button, change the Caption property. You can also set the font for
the caption and the foreground and background colors. If you want the button to work satisfactorily in
Excel 97, it is a good idea to change the TakeFocusOnClick property from its default value of True to
False. If the button takes the focus when you click it, Excel 97 does not allow you to assign values to
some properties, such as the NumberFormat property of the Range object.
Quick Access Toolbar
In versions of Excel prior to Excel 2007, you can attach macros to toolbar buttons. Because toolbars and
menus have been replaced by the Ribbon in Excel 2007, this ability no longer exists, with the exception of
the Quick Access Toolbar. The Quick Access Toolbar sits either above or below the Ribbon, and you can
add any button from the Ribbon to it to give you direct access to the button. When you right-click a
Ribbon button, you can choose Add to Quick Access Toolbar from the pop-up menu. The same pop-up
menu offers a second choice, which is Customize Quick Access Toolbar. This choice opens the dialog box
shown in Figure 1-13.
Select Macros from the Choose commands from: drop-down menu. You can now assign macros from
open workbooks to the Quick Access Toolbar by selecting them and clicking the Add button. The icon
associated with the macro can be changed by clicking the Modify button, which provides a selection of
icons and a text box where you can enter a quick tip for the button.
15
Chapter 1: Primer in Excel VBA
Figure 1-13
Event Procedures
Event procedures are special macro procedures that respond to the events that occur in Excel. Events
include user actions, such as clicking the mouse on a button, and system actions, such as the recalcula-
tion of a worksheet. Versions of Excel since Excel 97 expose a wide range of events for which you can
write code.
The click-event procedure for the ActiveX command button that ran the MonthNames2 macro, which you
have already seen, is a good example. You entered the code for this event procedure in the code module
behind the worksheet where the command button was embedded. All event procedures are contained in
the class modules behind the workbook, worksheets, charts, and UserForms. 
You can see the events that are available by activating a module, such as the ThisWorkbook module,
choosing an object, such as Workbook, from the left drop-down list at the top of the module, and then
activating the right drop-down, as shown in Figure 1-14.
The Workbook_Open()event can be used to initialize the workbook when it is opened. The code could
be as simple as activating a particular worksheet and selecting a range for data input. The code could
also be more sophisticated and construct new buttons in the Ribbon.
As you can see, there are many events to choose from. Some events, such as the BeforeSave and
BeforeCloseevents, allow cancellation of the event. The following event procedure stops the work-
book from being closed until cell A1 in Sheet1 contains the value True:
For compatibility with Excel 5 and 95, you can still create a sub procedure called
Auto_Open(), in a standard module, that runs when the workbook is opened. If you
also have a Workbook_Open() event procedure, the event procedure runs first.
16
Chapter 1: Primer in Excel VBA
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Sheets(“Sheet1”).Range(“A1”).Value <> True Then
Cancel = True
End If
End Sub
Figure 1-14
This code even prevents the closure of the Excel window.
User-Defined F unctions
Excel has hundreds of built-in worksheet functions that you can use in cell formulas. You can select an
empty worksheet cell, select the Formulas tab of the Ribbon, and click one of the buttons in the Function
Library chunk to see a list of functions. Among the most frequently used functions are SUMIF, and
VLOOKUP. If the function you need is not already in Excel, you can write your own user-defined function
(or UDF) using VBA.
UDFs can reduce the complexity of a worksheet. It is possible to reduce a calculation that requires many
cells of intermediate results down to a single function call in one cell. UDFs can also increase productiv-
ity when many users have to repeatedly use the same calculation procedures. You can set up a library of
functions tailored to your organization.
17
Chapter 1: Primer in Excel VBA
Documents you may be interested
Documents you may be interested