display pdf winform c# : Rotate all pages in pdf and save control application platform web page azure windows web browser 7053154973-Excel%202007%20VBA%20Programmers%20Reference%20-%20Wrox%20200711-part628

However, a better technique is to use the return value of the Add method to create an object variable that
refers to the new workbook. This provides a shortcut to refer to your workbook, and you can keep track
of a temporary workbook without the need to save it:
Sub NewWorkbooks()
Dim wkb1 As Workbook
Dim wkb2 As Workbook
Set wkb1 = Workbooks.Add
Set wkb2 = Workbooks.Add
wkb1.Activate
End Sub
The Add method allows you to specify a template for the new workbook. The template does not need to
be a file saved as a template, with an .xltx extension—it can be a normal workbook file with an .xlsx
extension. The following code creates a new, unsaved workbook called SalesDataX, where X is a
sequence number that increments as you create more workbooks based on the same template, in the
same way that Excel creates workbooks called Book1Book2, and so forth when you create new work-
books through the user interface:
Set wkb1 = Workbooks.Add(Template:=”C:\Data\SalesData.xlsx”)
To add an existing workbook file to the Workbooks collection, you use the Open method. Once again, it
is a good idea to use the return value of the Open method to create an object variable that you can use
later in your code to refer to the workbook:
Set wkb1 = Workbooks.Open(Filename:=”C:\Data\SalesData1.xlsx”)
Getting a Filename from a Path
When you deal with workbooks in VBA, you often need to specify directory paths and filenames. Some
tasks require that you know just the path—for example, if you set a default directory. Some tasks
require you to know just the filename—for example, if you want to activate an open workbook. Other
tasks require both path and filename —for example, if you want to open an existing workbook file that
is not in the active directory.
Once a workbook is open, there is no problem getting its path, getting its full path and filename, or just
getting the filename. For example, the following code displays SalesData1.xlsx in the message box:
Set wkb = Workbooks.Open(FileName:=”C:\Data\SalesData1.xlsx”)
MsgBox wkb.Name
wkb.Pathreturns “C:\Data”and wkb.FullNamereturns “C:\Data\SalesData1.xlsx”.
Many of the examples have data, such as filenames, hard coded. That is, data is placed
inside the code instead of putting it into a variable and using the variable in the code.
This is not good programming practice, in general, and isn’t to be recommended.
However, examples will continue in this format in order to simplify the code.
78
Chapter 3: Workbooks and Worksheets
Rotate all pages in pdf and save - 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#
how to reverse page order in pdf; rotate pdf page by page
Rotate all pages in pdf and save - 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
how to rotate all pages in pdf in preview; pdf save rotated pages
However, if you are trying to discover whether a certain workbook is already open, and you have the full
path information, you need to extract the filename from the full path to get the value of the Name property
of the Workbook object. The following GetFileName function returns the name “SalesData1.xlsx” from
the full path “C:\Data\SalesData1.xlsx”:
Function sGetFileName(sFullName As String) As String
‘sGetFileName returns the file name, such as Cash.xlsx from
‘the end of a full path such as C:\Data\Project1\Cash.xlsx
‘sFullName is returned if no path separator is found
Dim sPathSeparator As String        ‘Path Separator Character
Dim iFNLength As Integer ‘Length of FullName
Dim i As Integer
sPathSeparator = Application.PathSeparator
iFNLength = Len(sFullName)
‘Find last path separator character, if any
For i = iFNLength To 1 Step -1
If Mid(sFullName, i, 1) = sPathSeparator Then Exit For
Next i
sGetFileName = Right(sFullName, iFNLength - i)
End Function
So that sGetFileName works on the Macintosh as well as under Windows, the path separator character
is obtained using the PathSeparator property of the Application object. This returns :on the
Macintosh and \ under Windows. The Len function returns the number of characters in sFullName,
and the For...Nextloop searches backwards from the last character in sFullName, looking for the
path separator. If it finds one, it exits the For...Next loop, and the index i is equal to the character
position of the separator. If it does not find a separator, i will have a value of 0 when the For...Next
loop is completed.
sGetFileNameuses the Rightfunction to extract the characters to the right of the separator in
sFullName. If there is no separator, all the characters from sFullNameare returned. Once you have the
filename of a workbook, you can use the following bIsWorkbookOpen function to see if the workbook is
already a member of the Workbooks collection:
Function bIsWorkbookOpen(wkbName As String) As Boolean
‘bIsWorkbookOpen returns True if wkbName is a member
‘of the Workbooks collection. Otherwise, it returns False
‘wkbName must be provided as a file name without path
Dim wkb As Workbook
On Error Resume Next
Set wkb = Workbooks(wkbName)
If Not wkb Is Nothing Then
bIsWorkbookOpen = True
End If
End Function
When a For...Next loop is permitted to complete normally, the index variable will
not be equal to the Stopvalue. It will have been incremented past the end value.
79
Chapter 3: Workbooks and Worksheets
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
NET example for how to delete several defined pages from a PDF document Dim detelePageindexes = New Integer() {1, 3, 5, 7, 9} ' Delete pages. All Rights Reserved
pdf rotate page; change orientation of pdf page
C# PDF Page Insert Library: insert pages into PDF file in C#.net
as how to merge PDF document files by C# code, how to rotate PDF document page This C# demo explains how to insert empty pages to a specific All Rights Reserved
reverse page order pdf online; rotate individual pages in pdf
In this code, bIsWorkbookOpen tries to assign a reference to the workbook to an object variable, and
then sees whether or not that attempt was successful. An alternative way to achieve the same result
would be to search through the WorkBookscollection to see if any Workbook object had the name
required. 
In the preceding code, the OnErrorResumeNext ensures that no run-time error occurs when the work-
book is not open. If the named document is found, bIsWorkbookOpen returns a value of True. If you do
not define the return value of a Boolean function, it will return False. In other words, if no open work-
book of the given name is found, False is returned.
If wkb Is Nothing Then
bIsWorkbookOpen = False
Else
bIsWorkbookOpen = True
End If
The following code uses the user-defined sGetFileName and bIsWorkbookOpen functions described
earlier. ActivateWorkbook1 is designed to activate the workbook file in the path assigned to the vari-
able sFullName:
Sub ActivateWorkbook1()
Dim sFullName As String
Dim sFileName As String
Dim wkb As Workbook
sFullName = “C:\Data\SalesData1.xlsx”
sFileName = sGetFileName(sFullName)
If bIsWorkbookOpen(sFileName) Then
Set wkb = Workbooks(sFileName)
wkb.Activate
Else
Set wkb = Workbooks.Open(FileName:=sFullName)
End If
End Sub
ActivateWorkbook1first uses sGetFileNameto extract the workbook filename, SalesData1.xlsx,
from sFullName and assigns it to sFileName. Then it uses bIsWorkbookOpen to determine whether
SalesData1.xlsxis currently open. If the file is open, it assigns a reference to the Workbookobject to
the wkbobject variable and activates the workbook. If the file is not open, it opens the file and assigns
the return value of the Open method to wkb. When the workbook is opened, it will automatically become
the active workbook.
Note that the preceding code assumes that the workbook file exists at the specified location. It will fail 
if this is not the case. You will find a function, called bFileExists, in the “Overwriting an Existing
Workbook” section later in the chapter that you can use to test for the file’s existence.
You might prefer to use the following more lengthy but more explicit code to define
the return value of bIsWorkbookOpen. It is also easier to understand because it
avoids the double negative. Despite this, my own preference is for the shorter code
as just presented, because it is shorter.
80
Chapter 3: Workbooks and Worksheets
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
1. public void DeletePages(int[] pageIndexes). Description: Delete specified pages from the input PDF file. Parameters: All Rights Reserved.
rotate all pages in pdf preview; pdf reverse page order
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
doc2.InsertPages(pages, pageIndex) ' Output the new document how to use VB to insert an empty page to a specific location of current PDF file All Rights Reserved
rotate pages in pdf permanently; how to rotate one page in pdf document
Files in the Same Directory
It is common practice to break up an application into a number of workbooks and keep the related
workbook files in the same directory, including the workbook containing the code that controls the
application. In this case, you could use the common directory name in your code when opening the
related workbooks. However, if you “hard wire” the directory name into your code, you will have prob-
lems if the directory name changes, or if you copy the files to another directory on the same PC or
another PC. You will have to edit the directory path in your macros.
To avoid maintenance problems in this situation, you can make use of ThisWorkbook.Path.
ThisWorkbookis a reference to the workbook that contains the code. No matter where the workbook is
located, the Path property of ThisWorkbook gives you the required path to locate the related files, as
demonstrated in the following code:
Sub ActivateWorkbook2()
Dim sPath As String
Dim sFileName As String
Dim sFullName As String
Dim wkb As Workbook
sFileName = “SalesData1.xlsx”
If bIsWorkbookOpen(sFileName) Then
Set wkb = Workbooks(sFileName)
wkb.Activate
Else
sPath = ThisWorkbook.Path
sFullName = sPath & “\” & sFileName
Set wkb = Workbooks.Open(FileName:=sFullName)
End If
End Sub
Overwriting an Existing Workbook
When you want to save a workbook using the SaveAs method and using a specific filename, there is the
possibility that a file with that name will already exist on disk. If the file does already exist, the user
receives an alert message and has to make a decision about overwriting the existing file. If you want,
you can avoid the alert and take control programmatically.
If you want to overwrite the existing file every time, you can just suppress the alert with the following
code:
Set wkb1 = Workbooks.Add
Application.DisplayAlerts = False
wkb1.SaveAs Filename:=”C:\Data\SalesData1.xlsx”
Application.DisplayAlerts = True
If you want to check for the existing file and take alternative courses of action, you can use the Dirfunc-
tion. If this is a test that you need to perform often, you can create the following bFileExists function:
Function bFileExists(sFile As String) As Boolean
If Dir(sFile) <> “” Then bFileExists = True
End Function
81
Chapter 3: Workbooks and Worksheets
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Description: Copy specified page from the input PDF file pageIndexes, The page indexes of pages that will be copied, 0
how to rotate a page in pdf and save it; how to reverse pages in pdf
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Merge all Excel sheets to one PDF file. Export PDF from Excel with cell border or no border. Description: Convert to PDF/TIFF and save it on the disk.
rotate pdf page permanently; how to rotate just one page in pdf
The Dir function attempts to match its input argument against existing files. Dir can be used with wild-
cards under Windows for matches such as “*.xlsx”. If it finds a match, it returns the first match found
and can be called again without an input argument to get subsequent matches. Here, you are trying for
an exact match that will either return the same value as the input argument or a zero-length string if
there is no match. The bFileExists function has been declared to return a Boolean type value and, as
explained earlier, is set to the default value of False if no return value is defined. The If test assigns a
value of Trueto the return value if Dir does not return a zero-length string.
The following code shows how you can use the bFileExists function to test for a specific filename and
take alternative courses of action:
Sub TestForFile()
Dim sFileName As String
sFileName = “C:\Data\SalesData1.xlsx”
If bFileExists(sFileName) Then
MsgBox sFileName & “ exists”
Else
MsgBox sFileName & “ does not exist”
End If
End Sub
What you actually do in each alternative depends very much on the situation you are dealing with. One
alternative could be to prompt the user for a new filename if the name already exists. Another approach
could be to compute a new filename by finding a new sequence number to be appended to the end of
the text part of the filename, as shown here:
Sub CreateNextFileName()
Dim wkb1 As Workbook
Dim i As Integer
Dim sFName As String
Set wkb1 = Workbooks.Add(Template:=”C:\Data\SalesData.xlsx”)
i = 0
Do
i = i + 1
sFName = “C:\Data\SalesData” & i & “.xlsx”
Loop While bFileExists(sFName)
wkb1.SaveAs FileName:=sFName
End Sub
Here, the code in the Do...Loopis repeated, increasing the value of i by one for each loop, as long as
the filename generated exists. When i reaches a value for which there is no matching filename, the loop
ends and the file is saved using the new name.
Saving Changes
You can close a workbook using the Closemethod of the Workbook object, as shown here:
ActiveWorkbook.Close
82
Chapter 3: Workbooks and Worksheets
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
NET source code for combining multiple PDF pages together in Remarkably, all those C#.NET PDF document page processing source PDF streams into one PDF file and
save pdf rotated pages; pdf rotate single page reader
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
Description: Convert all the PDF pages to target format images and save them into streams. Parameters: Name, Description, Valid Value.
rotate a pdf page; rotate one page in pdf
If changes have been made to the workbook, the user will be prompted to save the changes when an
attempt is made to close the workbook. If you want to avoid this prompt, you can use several tech-
niques, depending on whether or not you want to save the changes.
If you want to save changes automatically, you can specify this as a parameter of the Close method:
Sub CloseWorkbook()
Dim wkb1 As Workbook
Set wkb1 = Workbooks.Open(FileName:=”C:\Data\SalesData1.xlsx”)
Range(“A1”).Value = Format(Date, “ddd mmm dd, yyyy”)
Range(“A1”).EntireColumn.AutoFit
wkb1.Close SaveChanges:=True
End Sub
If you don’t want to save changes, you can set the SaveChanges parameter of the Closemethod to False.
Another situation that could arise is where you want to leave a changed workbook open to view, but
you don’t want to save those changes or be prompted to save the changes when you close the workbook
or Excel. In this situation, you can set the Savedproperty of the workbook to True and Excel will think
that there are no changes to be saved. You should make doubly sure you would want to do this before
you add this line of code:
ActiveWorkbook.Saved = True
The Sheet s Collec tion
Within a Workbook object, there is a Sheets collection whose members can be either Worksheet objects
or Chart objects. For compatibility with older versions of Excel, they can also be DialogSheets,
Excel4MacroSheets, and Excel4InternationalMacroSheets. Excel 5 and Excel 95 included mod-
ules as part of the Sheets collection, but since Excel 97, modules have moved to the VBE.
Worksheetand Chartobjects also belong to their own collections—the Worksheetscollection and the
Chartscollection, respectively. The Chartscollection only includes chart sheets—that is, charts that
are embedded in a worksheet are not members of the Charts collection. Charts embedded in worksheets
are contained in ChartObjectobjects, which are members of the ChartObjects collection of the work-
sheet. See Chapter 9 for more details.
Worksheets
You can refer to a worksheet by its name or index number in the Sheets collection and the Worksheets
collection. If you know the name of the worksheet you want to work on, it is appropriate, and usually
Modules in workbooks created under Excel 5 or Excel 95 are considered by later ver-
sions of Excel to belong to a hidden Modules collection and can still be manipulated
by the code originally set up in the older versions.
83
Chapter 3: Workbooks and Worksheets
safer, to use that name to specify the required member of the Worksheets collection. If you want to pro-
cess all the members of the Worksheets collection—in a For...Nextloop, for example —you would
usually reference each worksheet by its index number.
The index number of a worksheet in the Worksheets collection can be different from the index number
of the worksheet in the Sheets collection. In the workbook shown in Figure 3-1, Sheet1 can be refer-
enced by any of the following:
ActiveWorkbook.Sheets(“Sheet1”)
ActiveWorkbook.Worksheets(“Sheet1”)
ActiveWorkbook.Sheets(2)
ActiveWorkbook.Worksheets(1)
Figure 3-1
There is a trap, however, concerning the Index property of the Worksheet object in that it returns 
the value of the index in the Sheetscollection, not the Worksheets collection. The following code 
tells you that Worksheets(1) is Sheet1with index 2, Worksheets(2) is Sheet2 with index 4, and
Worksheets(3)is Sheet3with index 5. You can see the message for Sheet2in Figure 3-2.
Sub WorksheetIndex()
Dim i As Integer
For i = 1 To ThisWorkbook.Worksheets.Count
MsgBox ThisWorkbook.Worksheets(i).Name & _
“ has Index = “ & _
ThisWorkbook.Worksheets(i).Index
Next i
End Sub
Figure 3-2
84
Chapter 3: Workbooks and Worksheets
You should avoid using the Index property of the worksheet, if possible, because it leads to confusing
code. The following example shows how you must use the worksheet Index as an index in the Sheets
collection, not the Worksheetscollection. The macro adds a new empty chart sheet to the left of every
worksheet in the active workbook:
Sub InsertChartsBeforeWorksheets()
Dim wks As Worksheet
For Each wks In Worksheets
Charts.Add Before:=Sheets(wks.Index)
Next wks
End Sub
In most cases you can avoid using the worksheet Index property. The preceding code should have been
written as follows:
Sub InsertChartsBeforeWorksheets2()
Dim wks As Worksheet
For Each wks In Worksheets
Charts.Add Before:=wks
Next wks
End Sub
Strangely enough, Excel will not allow you to add a new chart after the last worksheet, although it will
let you move a chart after the last worksheet. If you want to insert chart sheets after each worksheet, you
can use code like the following:
Sub InsertChartsAfterWorksheets()
Dim wks As Worksheet
Dim cht As Chart
For Each wks In Worksheets
Set cht = Charts.Add
cht.Move After:=wks
Next wks
End Sub
Chart sheets are covered in more detail in Chapter 8.
Copy and Move
The Copy and Move methods of the Worksheet object allow you to copy or move one or more work-
sheets in a single operation. They both have two optional parameters that allow you to specify the desti-
nation of the operation. The destination can be either before or after a specified sheet. If you do not use
one of these parameters, the worksheet will be copied or moved to a new workbook.
Copyand Movedo not return any value or reference, so you have to rely on other techniques if you want
to create an object variable referring to the copied or moved worksheets. This is not generally a problem,
because the first sheet created by a Copy operation, or the first sheet resulting from moving a group of
sheets, will be active immediately after the operation.
85
Chapter 3: Workbooks and Worksheets
Say you have a workbook like that shown in Figure 3-3 and want to add another worksheet for 
February —and then more worksheets for the following months. The numbers on rows 3 and 4 are the
input data, but row 5 contains calculations to give the difference between rows 3 and 4. When you 
copy the worksheet, you will want to clear the input data from the copies but retain the headings and
formulas.
Figure 3-3
The following code creates a new monthly worksheet that is inserted into the workbook after the latest
month. It copies the first worksheet, removes any numeric data from it but leaves any headings or for-
mulas in place, and then renames the worksheet to the new month and year:
Sub NewMonth()
‘Copy the first worksheet in the active workbook
‘to create a new monthly sheet with name of format “mmm yyyy”.
‘The first worksheet must have a name that is in a recognizable
‘date format.
Dim wks As Worksheet
Dim dteFirstDate As Date
Dim iFirstMonth As Integer
Dim iFirstYear As Integer
Dim iCount As Integer
‘Initialize counter to number of worksheets
iCount = Worksheets.Count
‘Copy first worksheet after last worksheet and increase counter
Worksheets(1).Copy After:=Worksheets(iCount)
iCount = iCount + 1
‘Assign last worksheet to wks
Set wks = Worksheets(iCount)
‘Calculate date from first worksheet name
dteFirstDate = DateValue(Worksheets(1).Name)
‘Extract month and year components
iFirstMonth = Month(dteFirstDate)
iFirstYear = Year(dteFirstDate)
‘Compute and assign new worksheet name
86
Chapter 3: Workbooks and Worksheets
wks.Name = _
Format(DateSerial(iFirstYear, iFirstMonth + iCount - 1, 1), “mmm yyyy”)
‘Clear data cells in wks, avoiding error if there is no data
wks.Cells.SpecialCells(xlCellTypeConstants, 1).ClearContents
End Sub
The result of the copy is shown in Figure 3-4.
Figure 3-4
NewMonthfirst determines how many worksheets are in the workbook and then copies the current
worksheet, appending it to the workbook. It updates the number of worksheets in iCount and creates
an object variable wks that refers to the copied sheet. It then uses the DateValue function to convert the
name of the January worksheet to a date.
NewMonthextracts the month and year of the date into the two integer variables iFirstMonthand
iFirstYearusing the Monthand Yearfunctions. It then uses the DateSerialfunction to calculate a
new date that follows on from the last one. This calculation is valid even when new years are created,
because DateSerial, like the worksheet DATE function, treats month numbers greater than 12 as the
appropriate months in the following year.
NewMonthuses the VBA Formatfunction to convert the new date into “mmm yyyy”format as a string. It
assigns the text to the Name property of the new worksheet. Finally, NewMonth clears the contents of any
cells containing numbers, using the SpecialCells method to find the numbers. SpecialCells is dis-
cussed in more detail in the following chapter on the Range object. The OnErrorResumeNext state-
ment suppresses a run-time error when there is no numeric data to be cleared.
Grouping Worksheets
You can manually group the sheets in a workbook by clicking a sheet tab, then holding down Shiftor
Ctrl and clicking on another sheet tab. Shift groups all the sheets between the two tabs. Ctrl adds just 
the new sheet to the group. You can also group sheets in VBA by using the Select method of the
Worksheetscollection in conjunction with the Arrayfunction. The following code groups the first,
third, and fifth worksheets and makes the third worksheet active:
Worksheets(Array(1, 3, 5)).Select
Worksheets(3).Activate
87
Chapter 3: Workbooks and Worksheets
Documents you may be interested
Documents you may be interested