display pdf winform c# : Rotate pages in pdf online control SDK platform web page winforms wpf web browser 7053154973-Excel%202007%20VBA%20Programmers%20Reference%20-%20Wrox%2020078-part710

Function dTax(dProfitBeforeTax As Double) As Double
If dProfitBeforeTax > 0 Then dTax = 0.3 * dProfitBeforeTax Else dTax = 0
End Function
One difference between IIfand the single-line Ifis that the Elsesection of the single-line Ifis
optional. The third parameter of the IIffunction must be defined. In VBA, it is often useful to omit the
Else:
If dProfitBeforeTax < 0 Then MsgBox “A Loss has occurred”, , “Warning”
Another difference is that, whereas IIfcan only return a value to a single variable, the single-line If
can assign values to different variables:
If iJohnsScore > iMarysScore Then iJohn = iJohn + 1 Else iMary = iMary + 1
Block If
If you want to carry out more than one action when a test is true, you can use a block Ifstructure, as
follows:
If iJohnsScore > iMarysScore Then
iJohn = iJohn + 1
iMary = iMary - 1
End If
Using a block If, you must not include any code after the Then, on the same line. You can have as many
lines after the test as required, and you must terminate the scope of the block Ifwith an EndIfstatement.
Ablock Ifcan also have an Elsesection, as follows:
If iJohnsScore > iMarysScore Then
iJohn = iJohn + 1
iMary = iMary - 1
Else
iJohn = iJohn - 1
iMary = iMary + 1
End If
Ablock Ifcan also have as many ElseIfsections as required:
If iJohnsScore > iMarysScore Then
iJohn = iJohn + 1
iMary = iMary - 1
ElseIf iJohnsScore < iMarysScore Then
iJohn = iJohn - 1
iMary = iMary + 1
Else
iJohn = iJohn + 1
iMary = iMary + 1
End If
When you have a block Iffollowed by one or more ElseIftests, VBAkeeps testing until it finds a true
section. It executes the code for that section and then proceeds directly to the statement following the
EndIf. If no test is true, the Elsesection is executed.
48
Chapter 1: Primer in Excel VBA
Rotate pages in pdf online - rotate PDF page permanently in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Users to Change the Rotation Angle of PDF File Page Using C#
rotate single page in pdf file; rotate pdf page few degrees
Rotate pages in pdf online - VB.NET PDF Page Rotate Library: rotate PDF page permanently in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
PDF Document Page Rotation in Visual Basic .NET Class Application
rotate pdf pages by degrees; how to rotate all pages in pdf in preview
Ablock Ifdoes nothing when all tests are false and the Elsesection is missing. Block Iftests can be
nested, one inside the other. You should make use of indenting to show the scope of each block. This is
vital—you can get into an awful muddle with the nesting of Ifblocks within other Ifblocks, and If
blocks within Elseblocks, and so on. If code is unindented, it isn’t easy, in a long series of nested If
tests, to match each EndIfwith each If:
If Not ThisWorkbook.Saved Then
lAnswer = MsgBox(“Do you want to save your changes”, vbQuestion + _
vbYesNo)
If lAnswer = vbYes Then
ThisWorkbook.Save
MsgBox ThisWorkbook.Name & “ has been saved”
End If
End If
This code uses the Savedproperty of the Workbookobject containing the code to see if the workbook has
been saved since changes were last made to it. If changes have not been saved, the user is asked if they
want to save changes. If the answer is yes, the inner block Ifsaves the workbook and informs the user.
Select Case
The following block Ifis testing the same variable value in each section:
Function vPrice(sProduct As String) As Variant
If sProduct = “Apples” Then
vPrice = 12.5
ElseIf sProduct = “Oranges” Then
vPrice = 15
ElseIf sProduct = “Pears” Then
vPrice = 18
ElseIf sProduct = “Mangoes” Then
vPrice = 25
Else
vPrice = CVErr(xlErrNA)
End If
End Function
If sProductis not found, the vPricefunction returns an Excel error value of #NA. Note that vPriceis
declared as a Variantso it can handle the error value as well as numeric values. For a situation like this,
SelectCaseis a more elegant construction. It looks like this:
Function vPrice(sProduct As String) As Variant
Select Case sProduct
Case “Apples”
vPrice = 12.5
Case “Oranges”
vPrice = 15
Case “Pears”
vPrice = 18
Case “Mangoes”
vPrice = 25
Case Else
vPrice = CVErr(xlErrNA)
End Select
End Function
49
Chapter 1: Primer in Excel VBA
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Enable specified pages deleting from PDF in Visual Basic .NET class. Free trial SDK library download for Visual Studio .NET program. Online source codes for
rotate pdf pages on ipad; pdf page order reverse
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
add and insert one or multiple pages to existing adobe PDF document in VB.NET. Ability to create a blank PDF page with related by using following online VB.NET
how to rotate a pdf page in reader; how to save a pdf after rotating pages
If you have only one statement per case, the following format works quite well. You can place multiple
statements on a single line by placing a colon between statements:
Function vPrice(sProduct As String) As Variant
Select Case sProduct
Case “Apples”:  vPrice = 12.5
Case “Oranges”: vPrice = 15
Case “Pears”:   vPrice = 18
Case “Mangoes”: vPrice = 25
Case Else:      vPrice = CVErr(xlErrNA)
End Select
End Function
SelectCasecan also handle ranges of numbers or text, as well as comparisons using the keyword Is.
The following example calculates a fare of 0 for infants up to 3 years old and anyone older than 65, with
two ranges between. Negative ages generate an error:
Function vFare(iAge As Integer) As Variant
Select Case iAge
Case 0 To 3, Is > 65
vFare = 0
Case 4 To 15
vFare = 10
Case 16 To 65
vFare = 20
Case Else
vFare = CVErr(xlErrNA)
End Select
End Function
Looping
All computer languages provide a mechanism for repeating the same, or similar, operations in an effi-
cient way. VBAhas two main structures that allow you to loop through the same code over and over
again. They are the Do...Loopand the For...Nextloop. 
The Do...Loopis for those situations where the loop will be terminated when a logical condition
applies, such as reaching the end of your data. The For...Nextloop is for situations where you can
predict in advance how many times you want to loop, such as when you want to enter expenses for the
10 people in your department.
VBAalso has an interesting variation on the For...Nextloop that is used to process all the objects in a
collection—the ForEach...Nextloop. You can use it to process all the cells in a range or all the sheets
in a workbook, for example.
Do...Loop
To illustrate the use of a Do...Loop, construct a sub procedure to shade every second line of a work-
sheet, as shown in Figure 1-27, to make it more readable. You want to apply the macro to different report
sheets with different numbers of products, so the macro will need to test each cell in the Acolumn until
it gets to an empty cell to determine when to stop.
50
Chapter 1: Primer in Excel VBA
C# PDF Page Insert Library: insert pages into PDF file in C#.net
to merge PDF document files by C# code, how to rotate PDF document page to delete PDF page using C# .NET, how to reorganize PDF document pages and how
save pdf rotate pages; how to change page orientation in pdf document
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET read barcodes from PDF, C#.NET OCR scan PDF. C# ASP.NET Document Viewer, C# Online Dicom Viewer
how to rotate page in pdf and save; rotate pages in pdf and save
Figure 1-27
The first macro will select every other row and apply the formatting:
Sub ShadeEverySecondRow()
Range(“A2”).EntireRow.Select
Do While ActiveCell.Value <> “”
Selection.Interior.ColorIndex = 15
ActiveCell.Offset(2, 0).EntireRow.Select
Loop
End Sub
ShadeEverySecondRowbegins by selecting row 2 in its entirety. When you select an entire row, the left-
most cell (in column A) becomes the active cell. The code between the Doand Loopstatements is then
repeated Whilethe value property of the active cell is not a zero-length string, that is, the active cell is
not empty. In the loop, the macro sets the interior color index of the selected cells to 15, which is gray.
Then the macro selects the entire row, two rows under the active cell. When a row is selected that has an
empty cell in column A, the Whilecondition is no longer true and the loop terminates.
You can make ShadeEverySecondRowrun faster by avoiding selecting. It is seldom necessary to select
cells in VBA, but you are led into this way of doing things because that’s the way you do it manually,
and that’s what you get from the macro recorder.
The following version of ShadeEverySecondRowdoes not select cells, and it runs considerably faster.
Itsets up an index lRow, which indicates the row of the worksheet and is initially assigned a value of 2.
The Cellsproperty of the worksheet allows you to refer to cells by row number and column number, so
51
Chapter 1: Primer in Excel VBA
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Free online C# class source code for deleting specified PDF pages in .NET console application. Able to remove a single page from PDF document.
how to rotate a page in pdf and save it; how to rotate all pages in pdf
VB.NET PDF - WPF PDF Viewer for VB.NET Program
PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET read barcodes from PDF, C#.NET OCR scan PDF. C# ASP.NET Document Viewer, C# Online Dicom Viewer
rotate one page in pdf reader; how to rotate one page in pdf document
when the loop starts, Cells(lRow,1)refers to cell A2. Each time around the loop, iis increased by two.
You can, therefore, change any reference to the active cell to a Cells(lRow,1)reference and apply the
EntireRowproperty to Cells(lRow,1)to refer to the complete row:
Sub ShadeEverySecondRow()
Dim lRow As Long
lRow= 2
Do Until IsEmpty(Cells(lRow, 1))
Cells(lRow, 1).EntireRow.Interior.ColorIndex = 15
lRowlRow+ 2
Loop
End Sub
To illustrate some alternatives, two more changes have been made on the Dostatement line in the previ-
ous code. Either Whileor Untilcan be used after the Do, so the test has been changed to an Untiland
you have used the VBAIsEmptyfunction to test for an empty cell.
It is also possible to exit a loop using a test within the loop and the ExitDostatement, as follows, which
also shows another way to refer to entire rows:
Sub ShadeEverySecondRow()
Dim lRow as Long
lRow= 0
Do
lRowlRow+ 2
If IsEmpty(Cells(lRow, 1)) Then Exit Do
Rows(lRow).Interior.ColorIndex = 15
Loop
End Sub
Yet another alternative is to place the Whileor Untilon the Loopstatement line. This ensures that the
code in the loop is executed at least once. When the test is on the Doline, it is possible that the test will
be false to start with, and the loop will be skipped.
Sometimes, it makes more sense if the test is on the last line of the loop. In the following example, it
seems more sensible to test sPassWordafter getting input from the user, although the code would still
work if the Untilstatement were placed on the Doline:
Sub GetPassword()
Dim sPassWord As String, i As Integer
i = 0
Do
i = i + 1
If i > 3 Then
MsgBox “Sorry, Only three tries”
Exit Sub
End If
The IsEmptyfunction is the best way to test that a cell is empty. If you use IfCells
(lRow,1)=“”, the test will be true for a formula that calculates a zero-length string.
52
Chapter 1: Primer in Excel VBA
VB.NET PDF - Create PDF Online with VB.NET HTML5 PDF Viewer
PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET read barcodes from PDF, C#.NET OCR scan PDF. C# ASP.NET Document Viewer, C# Online Dicom Viewer
rotate individual pages in pdf reader; rotate one page in pdf
C# HTML5 PDF Viewer SDK to create PDF document from other file
PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET read barcodes from PDF, C#.NET OCR scan PDF. C# ASP.NET Document Viewer, C# Online Dicom Viewer
save pdf after rotating pages; pdf reverse page order preview
sPassWord = InputBox(“Enter Password”)
Loop Until sPassWord = “XXX”
MsgBox “Welcome”
End Sub
GetPasswordloops until the password XXXis supplied, or the number of times around the loop exceeds
three.
For...Next Loop
The For...Nextloop differs from the Do...Loopin two ways. It has a built-in counter that is automati-
cally incremented each time the loop is executed, and it is designed to execute until the counter exceeds
a predefined value, rather than depending on a user-specified logical test. The following example places
the full file path and name of the workbook into the center footer for each worksheet in the active work-
book:
Sub FilePathInFooter()
Dim i As Integer, sFilePath As String
sFilePath = ActiveWorkbook.FullName
For i = 1 To Worksheets.Count Step 1
Worksheets(i).PageSetup.CenterFooter = sFilePath
Next i
End Sub
Versions of Excel prior to Excel 2002 do not have an option to automatically include the full file path 
in a custom header or footer, so this macro inserts the information as text. It begins by assigning the
FullNameproperty of the active workbook to the variable sFilePath. The loop starts with the For
statement and loops on the Nextstatement. iis used as a counter, starting at 1 and finishing when i
exceeds Worksheets.Count, which uses the Countproperty of the Worksheetscollection to determine
how many worksheets there are in the active workbook. 
The Stepoption defines the amount that iwill be increased each time around the loop. Step1could be
left out of this example, because a step of 1 is the default value. In the loop, iis used as an index to the
Worksheetscollection to specify each individual Worksheetobject. The PageSetupproperty of the
Worksheetobject refers to the PageSetupobject in that worksheet, so that the CenterFooterproperty
of the PageSetupobject can be assigned the sFilePathtext.
The following example shows how you can step backwards. It takes a complete file path and strips out
the filename, excluding the file extension. The example uses the FullNameproperty of the active work-
book as input, but the same code could be used with any file path. It starts at the last character in the file
path and steps backwards until it finds the period between the filename and its extension, and then the
backslash character before the filename. It then extracts the characters between the two:
Sub GetFileName()
Dim iBackSlash As Integer, iPoint As Integer
Dim sFilePath As String, sFileName As String
Dim i As Integer
sFilePath = ActiveWorkbook.FullName
For i = Len(sFilePath) To 1 Step -1
53
Chapter 1: Primer in Excel VBA
If Mid$(sFilePath, i, 1) = “.” Then
iPoint = i
Exit For
End If
Next i
If iPoint = 0 Then iPoint = Len(sFilePath) + 1
For i = iPoint - 1 To 1 Step -1
If Mid$(sFilePath, i, 1) = “\” Then
iBackSlash = i
Exit For
End If
Next i
sFileName = Mid$(sFilePath, iBackSlash + 1, iPoint - iBackSlash - 1)
MsgBox sFileName
End Sub
The first For...Nextloop uses the Lenfunction to determine how many characters are in the
sFilePathvariable, and iis set up to step backwards, counting from the last character position, work-
ing toward the first character position. The Mid$function extracts the character from sFilePathat the
position defined by iand tests it to see if it is a period.
When a period is found, the position is recorded in iPointand the first For...Nextloop is exited.
Ifthe filename has no extension, no period is found and iPointwill have its default value of 0. In this
case, the Iftest records an imaginary period position in iPointthat is one character beyond the end of
the filename.
The same technique is used in the second For...Nextloop as the first, starting one character before the
period, to find the position of the backslash character, and storing the position in iBackSlash. The Mid$
function is then used to extract the characters between the backslash and the period.
For Each...Next Loop
When you want to process every member of a collection, you can use the ForEach...Nextloop. The
following example is a rework of the FilePathInFooterprocedure:
Sub FilePathInFooter()
Dim sFilePath As String, wks As Worksheet
sFilePath = ActiveWorkbook.FullName
For Each wks In Worksheets
wks.PageSetup.CenterFooter = sFilePath
Next wks
End Sub
The loop steps through all the members of the collection. During each pass, a reference to the next mem-
ber of the collection is assigned to the object variable wks.
The following example lists all the files in the root directory of the C: drive. It uses the Windows
Scripting FileSystemObjectto create a reference to the C drive root directory. The example uses a 
ForEach...Nextloop to display the names of all the files in the directory:
54
Chapter 1: Primer in Excel VBA
Sub FileList()
‘Listing files with a For...Each loop
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
‘Create a reference to the FileSystemObject
Set objFSO = CreateObject(“Scripting.FileSystemObject”)
‘Create a folder reference
Set objFolder = objFSO.GetFolder(“C:\”)
‘List files in folder
For Each objFile In objFolder.Files
MsgBox objFile.Name
Next objFile
End Sub
The code uses techniques that are discussed in Chapter 19 to reference objects outside the Excel object
model. If you test this procedure on a directory with lots of files, and get tired of clicking OK, don’t for-
get that you can break out of the code with Ctrl+Break.
Arrays
Arrays are VBAvariables that can hold more than one item of data. An array is declared by including
parentheses after the array name. An integer is placed within the parentheses, defining the number of
elements in the array:
Dim avData(2)
You assign values to the elements of the array by indicating the element number as follows:
avData(0) = 1
avData(1) = 10
avData(2) = 100
The number of elements in the array depends on the array base. The default base is 0, which means that the
first data element is item 0. DimavData(2)declares a three-element array if the base is 0. Alternatively,
you can place the following statement in the declarations section at the top of your module to declare
that arrays are 1-based:
Option Base 1
With a base of 1, DimavData(2)declares a two-element array. Item 0 does not exist.
You can use the following procedure to test the effect of the OptionBasestatement:
55
Chapter 1: Primer in Excel VBA
Sub Array1()
Dim aiData(10) As Integer
Dim sMessage As String, i As Integer
For i = LBound(aiData) To UBound(aiData)
aiData(i) = i
Next i
sMessage = “Lower Bound = “ & LBound(aiData) & vbCr
sMessage = sMessage & “Upper Bound = “ & UBound(aiData) & vbCr
sMessage = sMessage & “Num Elements = “ & WorksheetFunction.Count(aiData) & vbCr
sMessage = sMessage & “Sum Elements = “ & WorksheetFunction.Sum(aiData)
MsgBox sMessage
End Sub
Array1uses the LBound(lower bound) and UBound(upper bound) functions to determine the lowest
and highest index values for the array. It uses the Countworksheet function to determine the number of
elements in the array. If you run this code with OptionsBase0, or no OptionsBasestatement, in the
declarations section of the module, it will show a lowest index number of 0 and 11 elements in the array.
With OptionsBase1, it shows a lowest index number of 1 and 10 elements in the array.
Note the use of the intrinsic constant vbCr, which contains a carriage return character. vbCris used to
break the message text to a new line.
If you want to make your array size independent of the OptionBasestatement, you can explicitly
declare the lower bound as well as the upper bound as follows:
Dim avData(1 To 2)
Arrays are very useful for processing lists or tables of items. If you want to create a short list, you can
use the Arrayfunction as follows:
Dim avData As Variant
avData = Array(“North”, “South”, “East”, “West”)
You can then use the list in a For...Nextloop. For example, you could open and process a series of
workbooks called North.xlsSouth.xlsEast.xls, and West.xls:
Sub Array2()
Dim avData As Variant, wkb As Workbook
Dim i As Integer
avData = Array(“North”, “South”, “East”, “West”)
For i = LBound(avData) To UBound(avData)
Set wkb = Workbooks.Open(Filename:=avData(i) & “.xls”)
‘Process data here
wkb.Close SaveChanges:=True
Next i
End Sub
56
Chapter 1: Primer in Excel VBA
Multi-Dimensional Arrays
So far you have only looked at arrays with a single dimension. You can actually define arrays with up to
60 dimensions, although few people would use more than two or three dimensions. The following state-
ments declare two-dimensional arrays:
Dim avData(10,20)
Dim avData(1 To 10,1 to 20)
You can think of a two-dimensional array as a table of data. The preceding example defines a table with
10 rows and 20 columns.
Arrays are very useful in Excel for processing the data in worksheet ranges. It can be far more efficient
toload the values in a range into an array, process the data, and write it back to the worksheet, than to
access each cell individually.
The following procedure shows how you can assign the values in a range to a Variant. The code uses
the LBoundand UBoundfunctions to find the number of dimensions in avData. Note that there is a sec-
ond parameter in LBoundand UBoundto indicate which index you are referring to. If you leave this
parameter out, the functions refer to the first index:
Sub Array3()
Dim avData As Variant, vUBound As Variant
Dim Message As String, i As Integer
avData = Range(“A1:A20”).Value
i = 1
Do
Message = “Lower Bound = “ & LBound(avData, i) & vbCr
Message = Message & “Upper Bound = “ & UBound(avData, i) & vbCr
MsgBox Message, , “Index Number = “ & i
i = i + 1
On Error Resume Next
vUBound = UBound(avData, i)
If Err.Number <> 0 Then Exit Do
On Error GoTo 0
Loop
Message = “Number of Non Blank Elements =” _
& WorksheetFunction.CountA(avData) & vbCr
MsgBox Message
End Sub
The first time around, the Do...LoopArray3determines the upper and lower bounds of the first
dimension of avData, as ihas a value of 1. It then increases the value of ito look for the next dimen-
sion. It exits the loop when an error occurs, indicating that no more dimensions exist.
By substituting different ranges into Array3, you can determine that the array created by assigning a
range of values to a Variantis two-dimensional, even if there is only one row or one column in the
range. You can also determine that the lower bound of each index is 1, regardless of the OptionBase
setting in the declarations section.
57
Chapter 1: Primer in Excel VBA
Documents you may be interested
Documents you may be interested