The Visual Basic Editor    M.11
To view this newly recorded macro, press  Alt + F11  to activate the VBE. Locate the 
workbook’s name in the Project Explorer window. You’ll see that the project has a new 
module listed. The name of the module depends on whether you had any other mod-
ules in the workbook when you started recording the macro. If you didn’t, the module 
will be named  Module1.  You can double-click the module to open the Code window. 
Figure M.6  displays the code for this example. 
Now let’s give this macro a try:
1.  Activate a worksheet that has 
gridlines displayed.  
2.  Choose  Tools,  then  Macro,  
and then choose  Macros,  or 
press  Alt + F8.   
3.  Select  Macro1  (see 
FigureM.7 ).  
4.  Click the  Run  button.  
5.  Excel executes the macro, 
and the gridlines disappear.    
You can execute any number of 
commands  and perform a  variety 
of actions while the macro recorder 
is  running.  Excel  translates  your 
mouse  actions  and  keystrokes  to 
VBA code. 
Figure M.6 
Module1 Macro Code
Figure M.7 
Macro Dialog Box
Pdf select text - search text inside PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn how to search text in PDF document and obtain text content and location information
pdf find and replace text; how to search pdf files for text
Pdf select text - VB.NET PDF Text Search Library: search text inside PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn How to Search Text in PDF Document and Obtain Text Content and Location Information in VB.NET application
pdf text select tool; find and replace text in pdf file
M.12    Extended Learning Module M
The preceding macro is a great demonstration of the macro recorder, but really isn’t 
all that practical. To make it truly functional, activate the module, and change the state-
ment to this (refer to  Figure M.8 ):
ActiveWindow.DisplayGridlines  =  _   
Not ActiveWindow.DisplayGridlines         
This modification makes the macro serve as a toggle. If gridlines are displayed, the 
macro turns them off. If gridlines are not displayed, the macro turns them on. Now 
run the macro within the spreadsheet itself by closing the VBA window and pressing 
Alt + F8,  then the  Run  button.
Another way to execute a macro is to press its shortcut key. Before you can use this 
method, you must assign a shortcut key to the macro. 
You have the opportunity to assign a shortcut key in the Record Macro dialog box 
when you begin recording a macro. If you create the procedure without using the macro 
recorder, you can assign a shortcut key (or change an existing shortcut key) using the 
following procedure:
1.  Choose  Tools,  then  Macro,  and then  Macros.   
2.  Select the  Macro1  Sub procedure name (that was created in the previous step) 
from the list box.  
3.  Click the  Options  button.  
4.  Click the  Shortcut Key  option and enter a letter in the box labeled  Ctrl  + .  
The letter you enter corresponds to the key combination you want to use for 
executing the macro.  
5.  Click  OK  to close the Macro Options dialog box.    
After you’ve assigned a shortcut key, you can press that key combination to execute 
the macro.    
Figure M.8 
Display Gridlines Macro
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
C#: Select All Images from One PDF Page. C# programming sample for extracting all images from a specific PDF page. C#: Select An Image from PDF Page by Position.
search text in multiple pdf; search pdf files for text programmatically
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
VB.NET : Select An Image from PDF Page by Position. Sample for extracting an image from a specific position on PDF in VB.NET program.
how to select text in pdf; cannot select text in pdf
VBA Building Blocks    M.13
VBA Building Blocks 
VBA is easy to learn but can be considered a serious programming language. It can be 
used to perform complex tasks such as automatically getting up-to-date financial infor-
mation from the Internet and calculating option prices, and can be used in scientific 
applications. 
There are many ways to write a macro using Excel VBA. You can write or record mac-
ros using modules or procedures, or you can develop user-defined functions. These are 
some of the simple-to-understand building blocks to learn within the VBA structure. 
CODE MODULES 
All macros reside in code modules like the one on the right of the VBE window (refer 
back to  Figure M.2 ). There are two types of code modules—(1) standard modules and 
(2) class modules. The one you see in  Figure M.2  is a standard module. You can use 
class modules to create your own objects (which is beyond our scope here). 
You can add as many code modules to your workbook as you like. Each module can 
contain many macros. For a small application, you would probably 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—(1)Sub 
procedures and (2) Function procedures. The macro recorder can produce only Sub 
procedures. 
VB.NET PDF Text Redact Library: select, redact text content from
VB.NET PDF - Redact PDF Text. Help Users to Redact PDF Text to Protect PDF Document in VB.NET. Overview. Redact PDF Text using VB.NET. Add necessary references:
convert pdf to word searchable text; how to search text in pdf document
C# PDF Text Redact Library: select, redact text content from PDF
C#.NET PDF SDK - Redact PDF Text in C#.NET. C# Demo Code for Redacting PDF Text to Protect Your PDF Document in C#.NET Project. Best
make pdf text searchable; pdf text search tool
M.14    Extended Learning Module M
SUB  PROCEDURES  
Sub procedures (sometimes referred  to as  subroutines ) 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  End Sub.  By con-
vention, the code within the Sub procedure is indented to make it stand out from the 
start and end of the Sub procedure, so that the code is easier to read. Here is an example 
of a Sub procedure:
Sub MonthNames()   
‘   
‘ MonthNames Macro   
‘ Macro recorded 12/20/2004 by Amy Phillips   
‘   
Range(“B1”).Select   
ActiveCell.FormulaR1C1  =  “Jan”   
Range(“C1”).Select   
ActiveCell.FormulaR1C1  =  “Feb”   
Range(“D1”).Select   
ActiveCell.FormulaR1C1  =  “Mar”   
Range(“E1”).Select   
ActiveCell.FormulaR1C1  =  “Apr”   
Range(“F1”).Select   
ActiveCell.FormulaR1C1  =  “May”   
Range(“G1”).Select   
ActiveCell.FormulaR1C1  =  “Jun”   
Range(Selection, Selection.End(xlToLeft)).Select   
Selection.Font.Italic  =  True   
Selection.Font.Bold  =  True   
Range(“A2”).Select   
End Sub   
If you look at the code in  MonthNames  Sub procedure, 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 abbreviation incorrectly, you 
could fix it; or you could identify and remove the line that sets the font to bold; or you 
could select and delete an entire macro. 
As a note, any lines starting with a single quote are comment lines, which are ignored 
by VBA (which will be discussed in more detail in the next section). They are added to 
provide documentation.  
FUNCTION PROCEDURES   
Excel has hundreds of built-in worksheet Function proce-
dures (or simply referred to as functions) that you can use in cell formulas. You can select 
an empty worksheet cell and choose the  Insert,  and then the  Function  command to see 
a list of those functions. Among the most frequently used functions are  SUM,   IF,  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 down to a single function call in one cell. UDFs can also increase 
productivity when many users have to repeatedly use the same calculation procedures. 
You can set up a library of functions tailored to your needs. 
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Tools Tab. Item. Name. Description. 1. Select tool. Select text and image on PDF document. 2. Hand tool. Pan around the document. Go To Tab. Item. Name. Description
convert pdf to searchable text; search pdf documents for text
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Tools Tab. Item. Name. Description. 1. Select tool. Select text and image on PDF document. 2. Hand tool. Pan around the document. Go To Tab. Item. Name. Description
how to search a pdf document for text; convert a scanned pdf to searchable text
Elements of VBA Programming    M.15
Unlike manual operations, UDFs cannot be recorded. You have to write them from 
scratch using a standard module in the VBE. If necessary, you can insert a standard 
module by right-clicking in the Project Explorer window and choosing  Insert,  then 
Module.  Consider the following:
Function CentigradeToFahrenheit(Centigrade)   
CentigradeToFahrenheit  =  Centigrade * 9 / 5  +  32   
End Function   
This  function  illustrates  an  important  concept  about  functions:  how  to  return 
the value that makes functions so important. Notice that the single line of code that 
makes up this Function procedure is a formula. Here, you create a function called 
CentigradeToFahrenheit()  that converts degrees Centigrade to degrees Fahrenheit. 
Connect to the Web site that supports this text ( www.mhhe.com/haag  select  XLM/M ) 
and download the file called  XLMM_UDF.xls.  In the worksheet, column A contains 
degrees Centigrade, and column B uses the  CentigradeToFahrenheit()  Function proce-
dure to calculate the corresponding temperature in degrees Fahrenheit. You can see the 
formula in cell B2 by looking at the Formula bar. 
Remember that the key difference between a Sub procedure and a Function proce-
dure is that a Function procedure returns a value.  CentigradeToFahrenheit()  calculates a 
numeric value, which is returned to the worksheet cell where  CentigradeToFahrenheit()  
is used. 
You need to open the VBE in order to review the Function procedure macro:
1.  Choose  Tools  on the Menu bar.  
2.  Select  Macro,  then  Visual Basic Editor,  or  Alt 
+
F11.     
Take a look at the Function procedure macro (double-click on  Module1 ). Normally 
Function procedures have one or more input parameters.  CentigradeToFahrenheit()  has 
one input parameter called  Centigrade,  which is used to calculate the return value. When 
you enter the formula,   = CentigradeToFahrenheit(A2),  the value in cell A2 is passed to 
CentigradeToFahrenheit()  through the input parameter  Centigrade.  For example, if the 
value of  Centigrade  is 0 (zero),  CentigradeToFahrenheit()  sets its own name equal to the 
calculated result, which is 32. The result is passed back to cell B2. The same process 
occurs in each cell that contains a reference to  CentigradeToFahrenheit().      
Elements of VBA Programming 
VBA uses many elements common to all programming languages, such as: comments, 
variables, constants, data types, and others. If you’ve programmed using other computer 
languages, some of this material will be familiar. If this is your first experience program-
ming, it should be an enjoyable exercise. 
COMMENTS 
 comment  is the simplest type of VBA statement. Because VBA ignores these state-
ments, they can consist of anything you want. You can insert a comment to remind your-
self why you did something or to clarify a piece of code you wrote. 
LEARNING OUTCOME 
5
VB.NET PDF - View PDF with WPF PDF Viewer for VB.NET
Tools Tab. Item. Name. Description. Ⅰ. Hand. Pan around the PDF document. Ⅱ. Select. Select text and image to copy and paste using Ctrl+C and Ctrl+V.
pdf searchable text; how to select text in pdf reader
C# WPF PDF Viewer SDK to view PDF document in C#.NET
Tools Tab. Item. Name. Description. Ⅰ. Hand. Pan around the PDF document. Ⅱ. Select. Select text and image to copy and paste using Ctrl+C and Ctrl+V.
search multiple pdf files for text; pdf editor with search and replace text
M.16    Extended Learning Module M
You begin a comment with a single quote (‘). VBA ignores any text that follows a 
single quote in a line of code. You can use a complete line for your comment or insert 
your comment at the end of a line of code. The following example shows a VBA proce-
dure with three comments:
Sub CommentsExample()   
‘ This procedure is a demonstration   
 =  0 ’ x represents zero   
‘ The next line of code will display the result   
MsgBox x   
End Sub   
VARIABLES AND CONSTANTS
VBA’s main purpose is to manipulate data. VBA stores the data in your computer’s 
memory, where some data, such as worksheet ranges, reside in objects and other data are 
stored in variables or constants that you create. 
VARIABLES  
As defined earlier, a  variable  is the name of a storage location. You have 
lots of flexibility in naming your variables, so make the variable names as descriptive as 
possible. You assign a value to a variable using the equal sign operator. Here are a few 
examples that use variable names. The variable names are on the left side of the equal 
signs (note that the last example uses two variables):
 =  1   
InterestRate  =  0.075   
LoanPayoffAmount  =  243089   
DataEntered  =  False   
 =  x  +  1   
UserName  =  “Amy Phillips”   
DateStarted =   #12/20/2004#   
MyNum  =  YourNum * 1.25   
VBA enforces a few rules regarding variable names:
• You can use letters, numbers, and some punctuation characters, but the first 
character must be a letter.  
• You cannot use any spaces or periods in a variable name.  
• VBA does not distinguish between uppercase and lowercase letters.  
• You cannot use the #, $, %, &, ‘, or ! characters in a variable name.  
• Variable names can be no longer than 254 characters (although it is not 
recommended to use more than 20 characters because they become hard to read).    
To make variable names more readable, programmers often use mixed case (for exam-
ple, InterestRate) or the underscore character (Interest_Rate). VBA has many reserved 
words that you can’t use for variable names or procedure names, for example:
• Built-in VBA function names such as  Ucase  and  Sqr.   
• VBA language words such as  Sub, With,  and  For.     
If you attempt to use one of these names as a variable, you may get a compile error 
(i.e., your macro won’t run). So, if an assignment statement produces an error message, 
double check and make sure that the variable name isn’t a reserved word.  
C# WPF PDF Viewer SDK to annotate PDF document in C#.NET
Line color. Select the line color when drawing annotations on PDF document. Default create. Click to select drawing annotation with default properties. Text box.
searching pdf files for text; search pdf for text in multiple files
VB.NET PDF - Annotate PDF with WPF PDF Viewer for VB.NET
Line color. Select the line color when drawing annotations on PDF document. Default create. Click to select drawing annotation with default properties. Text box.
select text in pdf file; can't select text in pdf file
Elements of VBA Programming    M.17
CONSTANTS  
A variable’s value may (and usually does) change while your procedure 
is executing. Sometimes, you need to refer to a value or string that never changes, in 
other words, a  constant.  A  constant  is a named element whose value doesn’t change. 
Here are a few examples that declare constants by using the  Const  statement:
Const NumQuarters As Integer  =  4   
Const Rate  =  .0725, Period  =  12   
Const ModName As String  =  “Budget Macros”   
Using constants in place of hard-coded values or strings (i.e., something other than 
a value) is an excellent programming practice. For example, if your procedure needs to 
refer to a specific value (such as an interest rate) several times, it’s better to declare the 
value as a constant and refer to its name rather than the value. This makes your code 
more readable and easier to change; should the need for changes arise, you have to 
change only one statement rather than several.  
DATA TYPES  
Data types are the manner in which data types are stored in memory—
for example, as integers, real numbers, or strings. VBA has a variety of built-in data 
types.  Figure M.9  lists the most common types of data that VBA can handle.  
STRINGS   
Excel and VBA can work with both numbers and text. Text is often referred 
to as a  string.  There are two types of strings in VBA:
1.    Fixed-length strings  are declared with a specified number of characters (the 
maximum length is about 65,526 characters).  
2.    Variable-length strings  theoretically can hold as many as 2 billion characters.    
LEARNING OUTCOME 
6
Data Type
Bytes Used
Range of Values
Boolean
2
True or False
Integer
2
−32,768 to 32,767
Long
4
−2,147,483 to 2,147,483,647
Single
4
−3.402823E38 to 1.401298E45
Double (negative)
8
−1.79769313486232E308 to 
−4.94065645841247E-324
Double (positive)
8
4.94065645841247E-324 to 
1.79769313486232E308
Currency
8
−922,337,203,685,477.5808 to 
922,337,203,685,477.5807
Date
8
1/1/100 to 12/31/9999
String
1 per char
Varies
Object
4
Any defined object
Variant
Varies
Any data type
User defined
Varies
Varies
Figure M.9 
VBA Built-in Data Types
M.18    Extended Learning Module M
So far you have been creating variables simply by using them. This is referred to as 
implicit variable declaration. Most computer languages require us to employ  explicit 
variable declaration.  This means that you must define the names of all the variables you 
are going to use, before you use them in your code. VBA allows both types of declara-
tion. If you want to declare a variable explicitly, you do so using a  Dim  statement. When 
declaring a string variable with a  Dim  statement, you can specify the maximum length if 
you know it (it’s a fixed-length string) or let VBA handle it dynamically (it’s a variable-
length string). The following example declares the  MyString  variable as a string with a 
maximum length of 50 characters (use an asterisk to specify the number of characters, 
up to the 65,526 character limit).  YourString  is also declared as a string but its length is 
unspecified (which is typically what is recommended that you use):
Dim MyString As String * 50   
Dim YourString As String   
DATES  
Although you can use a string variable to store dates, it is recommended that 
you use the Date data type. If you do, you will be able to perform calculations with the 
dates. For example, you might need to calculate the number of days between two dates. 
This would be impossible if you used strings to hold your dates. 
A variable defined as a date can hold dates ranging from January 1, 0100, to December 
31, 9999. That’s a span of nearly 10,000 years. You can also use the date data type to 
work with time data. 
Here are a few examples that declare variables and constants as a Date data type (note 
that in VBA, dates and times are placed between two hash marks, i.e., the # symbols):
Dim Today As Date   
Dim StartTime As Date   
Const FirstDay As Date  =  #1/1/2005#   
Const Noon  =  #12:00:00#   
Date variables display dates according to your system’s short date format, and display 
times according to your system’s time format (either 12- or 24-hour). Therefore, the 
VBA-displayed date or time format may vary, depending on the settings for the system 
on which the application is running. 
ASSIGNMENT STATEMENTS 
An  assignment statement  is a VBA statement that assigns the result of an expression to a 
variable or an object. Excel’s Help system defines the term  expression  as:
a combination of keywords, operators, variables, and constants that yields a string, 
number, or object. An expression can be used to perform a calculation, manipulate 
characters, or test data.    
Much of your work in VBA involves developing (and sometimes debugging) expres-
sions. If you know how to create formulas in Excel, you’ll have no trouble creating expres-
sions. With a worksheet formula, Excel displays the result in a cell. A VBA expression, 
on the other hand, can be assigned to a variable. Here are a few assignment statement 
examples (the expressions are to the right of the equal sign):
 =  1   
 =  x  +  1   
 =  (y * 2) / (z * 2)   
HouseCost  =  375000   
FileOpen  =  True   
Range(“TheYear”).Value  =  2005   
Elements of VBA Programming    M.19
OPERATORS
Operators play a major role in VBA. Besides the equal sign operator ( = ), VBA provides 
several other operators, as presented in  Figure M.10 . 
The precedence order for operators in VBA is exactly the same as in Excel formulas. 
Exponentiation has the highest precedence. Multiplication and division come next, fol-
lowed by addition and subtraction. You can use parentheses to change the natural prece-
dence order, making whatever’s sandwiched in parentheses come before any operator. 
Figure M.10 
VBA Operators
Operator
Operator Symbol
Addition
+
Multiplication
*
Division
/
Subtraction
-
Exponentiation
^
String concatenation
&
Integer division (the result 
is always an integer)
\
Modulo arithmetic (returns 
the remainder of a 
division operation)
Mod
Logical Operator
What It Does
Not
Negation on an expression
And
Conjunction on two expressions
Or
Disjunction on two expressions
XoR
Exclusion on two expressions
Eqv
Equivalence on two expressions
Imp
Implication on two expressions
M.20    Extended Learning Module M
Decisions, Decisions, Decisions 
Some VBA procedures start at the code’s beginning and progress line by line to the end, 
never deviating from this top-to-bottom flow. Macros that you record always work like 
this. In many cases, however, you need to control the flow of your code by skipping over 
some statements, executing some statements multiple times, and testing conditions to 
determine what the procedure does next. 
VBA is indeed a structured language. It offers standard structured decision con-
structs such as  If-Then  and  Select Case  structures, and  For-Next, Do-Until,  and  Do-While  
loops. 
THE IF-THEN STRUCTURE 
The  If-Then  statement is VBA’s most important control structure. The  If-Then  structure 
has this basic syntax:
If condition Then statements [Else elsestatements]   
Use the  If-Then  structure when you want to execute one or more statements condi-
tionally. The optional  Else  clause, if included, lets you execute one or more statements 
if the condition you’re testing is not true. When a condition is true, VBA executes the 
conditional statements and the  If-Then  ends. 
OK, let’s apply this concept to a spreadsheet scenario. If you had a worksheet that 
needed to calculate a discount rate based on quantity, you would want to use an  If-Then  
structure to help us out. Here’s an example that does just that. This procedure uses the 
value from cell A2 (i.e.,  Cells(2, 1).Value ), assigns it to the variable  Quantity,  and then 
displays the appropriate discount in cell B2 (i.e.,  Cells(2, 2).Value ), based on the quan-
tity the user enters:
Sub ShowDiscount()   
Dim Quantity As Integer   
Dim Discount As Double   
Quantity  =  Cells(2, 1).Value   
If Quantity > 0 Then Discount  =  0.1   
If Quantity > =  25 Then Discount  =  0.15   
If Quantity > =  50 Then Discount  =  0.2   
If Quantity > =  75 Then Discount  =  0.25   
Cells(2, 2).Value  =  Discount   
End Sub   
Notice that each  If-Then  statement in this Sub procedure is executed and the value 
for  Discount  can change as the statements are executed. However, the procedure ulti-
mately displays the correct value for  Discount.  
LEARNING OUTCOME 
7
Documents you may be interested
Documents you may be interested