display pdf winform c# : Rotate all pages in pdf file Library SDK API .net asp.net web page sharepoint 7053154973-Excel%202007%20VBA%20Programmers%20Reference%20-%20Wrox%2020079-part721

Dynamic Arrays
When writing your code, it is sometimes not possible to determine the size of the array that will be
required. For example, you might want to load the names of all the .xlsfiles in the current directory
into an array. You won’t know in advance how many files there will be. One alternative is to declare an
array that is big enough to hold the largest possible amount of data—but this would be inefficient.
Instead, you can define a dynamic array and set its size when the procedure runs.
You declare a dynamic array by leaving out the dimensions:
Dim avData()
You can declare the required size at run time with a ReDimstatement, which can use variables to define
the bounds of the indexes:
ReDim avData(iRows, iColumns)
ReDim avData(iminRow to imaxRow, iminCol to imaxCol)
ReDimwill re-initialize the array and destroy any data in it, unless you use the Preservekeyword.
Preserveis used in the following procedure that uses a Do...Loopto load the names of files into the
dynamic array called asFNames, increasing the upper bound of its index by one each time to accommo-
date the new name.
The Dirfunction returns the first filename found that matches the wildcard specification in sFType.
Subsequent usage of Dir, with no parameter, repeats the same specification, getting the next file that
matches, until it runs out of files and returns a zero-length string:
Sub FileNames()
Dim sFName As String
Dim asFNames() As String
Dim sFType As String
Dim i As Integer
sFType = “*.xls”
sFName = Dir(sFType)
Do Until sFName = “”
i = i + 1
ReDim Preserve asFNames(1 To i)
asFNames(i) = sFName
sFName = Dir
Loop
If i = 0 Then
MsgBox “No files found”
Else
For i = 1 To UBound(asFNames)
MsgBox asFNames(i)
Next i
End If
End Sub
If you intend to work on the files in a directory and save the results, it is a good idea to get all the file-
names first, as in the FileNamesprocedure, and use that list to process the files. It is not a good idea to
rely on the Dirfunction to give you an accurate file list while you are in the process of reading and
overwriting files.
58
Chapter 1: Primer in Excel VBA
Rotate all pages in pdf file - 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 pdf pages by degrees; how to rotate a page in pdf and save it
Rotate all pages in pdf file - 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 one page in a pdf file; rotate pdf pages on ipad
Run-Time Error-Handling
When you are designing an application, you should try to anticipate any problems that could occur
when the application is used in the real world. You can remove all the bugs in your code and have flaw-
less logic that works with all permutations of conditions, but a simple operational problem could still
bring your code crashing down with a less than helpful message displayed to the user.
For example, if you try to save a workbook file to the floppy disk in the A: drive, and there is no disk in
the A: drive, your code will grind to a halt and display a message that will probably not mean anything
to the average user.
If you anticipate this particular problem, you can set up your code to gracefully deal with the situation.
VBAallows you to trap error conditions using the following statement:
On Error GoTo LineLabel
LineLabelis a marker that you insert at the end of your normal code, as shown in the following code
with the line label errTrap. Note that a colon follows the line label. The line label marks the start of
your error recovery code and should be preceded by an Exitstatement to prevent execution of the error
recovery code when no error occurs:
Sub ErrorTrap1()
Dim lAnswer As Long, sMyFile As String
Dim sMessage As String, sCurrentPath As String
On Error GoTo errTrap
sCurrentPath = CurDir$
ChDrive “A”
ChDrive sCurrentPath
ChDir sCurrentPath
sMyFile = “A:\Data.xls”
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=sMyFile
TidyUp:
ChDrive sCurrentPath
ChDir sCurrentPath
Exit Sub
errTrap:
sMessage = “Error No: = “ & Err.Number & vbCr
sMessage = sMessage & Err.Description & vbCr & vbCr
sMessage = sMessage & “Please place a disk in the A: drive” & vbCr
sMessage = sMessage & “and press OK” & vbCr & vbCr
sMessage = sMessage & “Or press Cancel to abort File Save”
lAnswer = MsgBox(sMessage, vbQuestion + vbOKCancel, “Error”)
If lAnswer = vbCancel Then Resume TidyUp
Resume
End Sub
Once the OnErrorstatement is executed, error trapping is enabled. If an error occurs, no message is 
displayed and the code following the line label is executed. You can use the Errobject to obtain infor-
mation about the error. The Numberproperty of the Errobject returns the error number, and the
Descriptionproperty returns the error message associated with the error. You can use Err.Numberto
59
Chapter 1: Primer in Excel VBA
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
doc2.InsertPages(pages, pageIndex) ' Output the new document. to use VB to insert an empty page to a specific location of current PDF file . All Rights Reserved
how to rotate one pdf page; rotate pdf pages
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
pdf rotate single page and save; rotate pdf page by page
determine the error when it is possible that any of a number of errors could occur. You can incorporate
Err.Descriptioninto your own error message, if appropriate.
In Excel 5 and 95, Errwas not an object, but a function that returned the error number. Because
Numberis the default property of the Errobject, using Errby itself is equivalent to using
Err.Number,and the code from the older versions of Excel still works in Excel 97 and later versions.
The code in ErrorTrap1, after executing the OnErrorstatement, saves the current directory drive and
path into the variable sCurrentPath. It then executes the ChDrivestatement to try to activate the A:
drive. If there is no disk in the A: drive, error 68—(Device unavailable) occurs and the error recovery
code executes. For illustration purposes, the error number and description are displayed and the user is
given the opportunity to either place a disk in the A: drive and continue, or abort the save.
If the user wishes to stop, you branch back to TidyUpand restore the original drive and directory set-
tings. Otherwise the Resumestatement is executed. This means that execution returns to the statement
that caused the error. If there is still no disk in the A: drive, the error recovery code is executed again.
Otherwise the code continues normally.
The only reason for the ChDrive“A”statement is to test the readiness of the A: drive, so the code
restores the stored drive and directory path. The code sets the DisplayAlertsproperty of the
Applicationobject to False, before saving the active workbook. This prevents a warning if an old file
called Data.xlsis being replaced by the new Data.xls. (See Chapter 3 for more on DisplayAlerts.)
The Resumestatement comes in three forms:
Resumecauses execution of the statement that caused the error.
ResumeNextreturns execution to the statement following the statement that caused the error,
so the problem statement is skipped.
ResumeLineLabeljumps back to any designated line label in the code, so you can decide to
resume where you want.
The following code uses ResumeNextto skip the Killstatement, if necessary. The charmingly named
Killstatement removes a file from disk. The following code removes any file with the same name as the
one you are about to save, so there will be no need to answer the warning message about overwriting
the existing file.
The problem is that Killwill cause a fatal error if the file does not exist. If Killdoes cause a problem,
the error recovery code executes and you use ResumeNextto skip Killand continue with SaveAs. The
MsgBoxis there for educational purposes only. You would not normally include it:
Sub ErrorTrap2()
Dim sMyFile As String, sMessage As String
Dim sAnswer As String
On Error GoTo errTrap
Workbooks.Add
sMyFile = “C:\Data.xls”
Kill sMyFile
60
Chapter 1: Primer in Excel VBA
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
C#.NET source code for combining multiple PDF pages together in managed C# code and compatible with all .NET developing choose to create a new PDF file in .NET
how to permanently rotate pdf pages; rotate one page in pdf
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Document and metadata. All object data. File attachment. Flatten visible layers. VB.NET Demo Code to Optimize An Exist PDF File in Visual C#.NET Project.
how to rotate pdf pages and save permanently; rotate pdf page
ActiveWorkbook.SaveAs Filename:=sMyFile
ActiveWorkbook.Close
Exit Sub
errTrap:
sMessage = “Error No: = “ & Err.Number & vbCr
sMessage = sMessage & Err.Description & vbCr & vbCr
sMessage = sMessage & “File does not exist”
sAnswer = MsgBox(sMessage, vbInformation, “Error”)
Resume Next
End Sub
On Error Resume Next
As an alternative to OnErrorGoTo, you can use:
On Error Resume Next
This statement causes errors to be ignored, so it should be used with caution. However, it has many
uses. The following code is a rework of ErrorTrap2:
Sub ErrorTrap3()
Dim sMyFile As String
Workbooks.Add
sMyFile = “C:\Data.xls”
On Error Resume Next
Kill sMyFile
On Error GoTo 0
ActiveWorkbook.SaveAs Filename:=sMyFile
ActiveWorkbook.Close
End Sub
Use OnErrorResumeNextjust before the Killstatement. If C:\Data.xlsdoes not exist, the error
caused by Killis ignored and execution continues on the next line. After all, you don’t care if the file
does not exist. That’s the situation you are trying to achieve.
OnErrorGoTo0is used to turn on normal VBAerror-handling again. Otherwise, any further errors
would be ignored. It is best not to try to interpret this statement, which appears to be directing error-
handling to line 0. Just accept that it works.
You can use OnErrorResumeNextto write code that would otherwise be less efficient. The following
sub procedure determines whether a name exists in the active workbook:
Sub TestForName()
If bNameExists(“SalesData”) Then
MsgBox “Name Exists”
Else
MsgBox “Name does not exist”
End If
End Sub
Function bNameExists(sMyName As String) As Boolean
61
Chapter 1: Primer in Excel VBA
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
Combine multiple specified PDF pages in into single one file. without changing the previous two PDF documents at all. VB.NET users can append a PDF file to the
rotate a pdf page; save pdf after rotating pages
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
how to rotate all pages in pdf in preview; rotate pages in pdf and save
Dim sName As String
On Error Resume Next
sName = Names(sMyName).RefersTo
If Err.Number <> 0 Then
bNameExists = False
Err.Clear
Else
bNameExists = True
End If
End Function
TestForNamecalls the bNameExistsfunction, which uses OnErrorResumeNextto prevent a fatal
error when it tries to assign the name’s RefersToproperty to a variable. There is no need for OnError
GoTo0here, because error-handling in a procedure is disabled when a procedure exits, although
Err.Numberis not cleared.
If no error occurred, the Numberproperty of the Errobject is 0. If Err.Numberhas a non-0 value, an
error occurred, presumably because the name did not exist, so bNameExistsis assigned a value of
Falseand the error is cleared. The alternative to this single pass procedure is to loop through all the
names in the workbook, looking for a match. If there are lots of names, this can be a slow process.
Summary
In this chapter, you have seen those elements of the VBAlanguage that enable you to write useful and
efficient procedures. You have seen how to add interaction to macros with the MsgBoxand InputBox
functions, how to use variables to store information, and how to get help with VBAkeywords.
You have seen how to declare variables and define their type, and the effect on variable scope and life-
time of different declaration techniques. In addition, you used the block Ifand SelectCasestructures
to perform tests and carry out alternative calculations, and Do...Loopand For...Nextloops that
allow you to efficiently repeat similar calculations. You have seen how arrays can be used, particularly
with looping procedures. Moreover, you learned how to use OnErrorstatements to trap errors.
When writing VBAcode for Excel, the easiest way to get started is to use the macro recorder. You can
then modify that code, using the VBE, to better suit your purposes and to operate efficiently. Using the
Object Browser, Help screens, and the reference section of this book, you can discover objects, methods,
properties, and events that can’t be found with the macro recorder. Using the coding structures provided
by VBA, you can efficiently handle large amounts of data and automate tedious processes.
You now have the knowledge required to move on to the next chapter, where you will find a rich set of
practical examples showing you how to work with key Excel objects. You will discover how to create
your own user interface, setting up your own Ribbon buttons and dialog boxes, and embedding controls
in your worksheets to enable yourself and others to work more productively.
62
Chapter 1: Primer in Excel VBA
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Compress large-size PDF document of 1000+ pages to smaller one in a short All object data. C# Demo Code to Optimize An Exist PDF File in Visual C#.NET Project.
pdf rotate pages and save; pdf rotate one page
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.
pdf page order reverse; reverse page order pdf
The Application Object
This chapter examines a range of Excel functionality, looking at features that are not necessarily
related to each other. In general, the Excel object model contains objects designed to address quite
specific tasks. The Applicationobject sits at the top of the Excel object model hierarchy and con-
tains all the other objects in Excel. It also acts as a catch-all area for properties and methods that do
not fall neatly into any other object, but are necessary for programmatic control of Excel. There are
Applicationproperties that control screen updating and toggle alert messages, for example.
There is an Applicationmethod that calculates the formulas in the open workbooks.
Globals
Many of the Applicationobject’s methods and properties are also members of <globals>,
which can be found at the top of the list of classes in the Object Browser, as shown in Figure 2-1.
If a property or method is in <globals>, you can refer to that property or method without a pre-
ceding reference to an object. For example, the following two references are equivalent:
Application.ActiveCell
ActiveCell
However, you do need to be careful. It is easy to assume that frequently used Applicationobject
properties, such as ScreenUpdating, are <globals>when they are not. The following code is
correct:
Application.ScreenUpdating = False
You will get unexpected results with the following:
ScreenUpdating = False
This code sets up a new variable and assigns the value Falseto it. You can easily avoid this error
by having the line of code OptionExplicitat the top of each module so that such references are
flagged as undefined variables when your code is compiled.
Figure 2-1
The Active Properties
The Applicationobject provides many shortcuts that allow you to refer to active objects without nam-
ing them explicitly. This makes it possible to discover what is currently active when your macro runs. It
also makes it easy to write generalized code that can be applied to objects of the same type with different
names.
The following Applicationobject properties are global properties that allow you to refer to active
objects:
ActiveCell
ActiveChart
ActivePrinter
ActiveSheet
ActiveWindow
Remember that you can have OptionExplicitautomatically inserted in new mod-
ules if you use Tools➪Options in the VBE window and, under the Editor tab, tick
the Require Variable Declaration checkbox.
64
Chapter 2: The Application Object
ActiveWorkbook
Selection
If you have just created a new workbook and want to save it with a specific filename, using the
ActiveWorkbookproperty is an easy way to return a reference to the new Workbookobject:
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=”C:\Data.xls”
If you want to write a macro that can apply a bold format to the currently selected cells, you can use the
Selectionproperty to return a reference to the Rangeobject containing the selected cells:
Selection.Font.Bold = True
Be aware that Selectionwill not refer to a Rangeobject if another type of object, such as a Shape
object, is currently selected or the active sheet is not a worksheet. You might want to build a check into a
macro to ensure that a worksheet is selected before attempting to enter data into it:
If TypeName(ActiveSheet) <> “Worksheet” Or _
TypeName(Selection) <> “Range” Then
MsgBox “You can only run this macro in a range”, vbCritical
Exit Sub
End If
Display Alerts
It can be annoying to have to respond to system alerts while a macro runs. For example, if a macro deletes a
worksheet, an alert message appears and you have to click the OK button to continue. However, there is
also the possibility of a user clicking the Cancel button, which would abort the delete operation and could
adversely affect subsequent code where the delete operation was assumed to have been carried out.
You can suppress most alerts by setting the DisplayAlertsproperty to False. When you suppress an
alert dialog box, the action that is associated with the default button in that box is automatically carried
out, as follows:
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
DisplayAlertsis commonly used to suppress the warning that you are about to overwrite an existing
file using File➪SaveAs. When you suppress this warning, the default action is taken and the file is over-
written without interrupting the macro.
It is not necessary to reset DisplayAlertsto Trueat the end of your macro because
VBAdoes this automatically. However, it is usually a good idea, after suppressing a
particular message, to turn the alerts back on so that any unexpected warnings do
appear on screen.
65
Chapter 2: The Application Object
Screen Updating
It can likewise be annoying to see the screen change and flicker while a macro is running. This happens
with macros that select or activate objects and is typical of the code generated by the macro recorder.
If you want to freeze the screen while your macro runs, you use the following line of code:
Application.ScreenUpdating = False
The screen remains frozen until you assign the property a value of True, or when your macro finishes
executing and returns control to the user interface. There is no need to restore ScreenUpdatingto True,
unless you want to display screen changes while your macro is still running.
There is one situation where it is a good idea to set ScreenUpdatingto Truewhile your macro is run-
ning. If you display a user form or built-in dialog box while your macro is running, you should make
sure screen updating is on before showing the object. If screen updating is off and the user drags the
user form around the screen, the user form will act as an eraser on the screen behind it. You can turn
screen updating off again after showing the object.
Evaluate
The Evaluatemethod can be used to calculate Excel worksheet formulas and generate references to
Rangeobjects. The normal syntax for the Evaluatemethod is as follows:
Evaluate(“Expression”)
You can also use a shortcut format where you omit the quotes and place square brackets around the
expression, as follows:
[Expression]
Expressioncan be any valid worksheet calculation, with or without the equal sign on the left, or it can
be a reference to a range of cells. The worksheet calculations can include worksheet functions that are
not made available to VBAthrough the WorksheetFunctionobject, or they can be worksheet array for-
mulas. You will find more information about the WorksheetFunctionobject later in this chapter.
Abeneficial side effect of turning off screen updating is that your code runs faster. It
will even speed up code that avoids selecting objects, where little screen updating is
required. Your code runs at maximum speed when you avoid selecting and turn off
screen updating.
It is better to avoid selecting objects in VBA. It is seldom necessary to do this, and
your code will run faster if you can avoid selecting or activating objects. Most of the
code in this book avoids selecting where possible.
66
Chapter 2: The Application Object
For instance, the ISBLANKfunction, which you can use in your worksheet formulas, is not available to
VBAthrough the WorksheetFunctionobject, because the VBAequivalent function IsEmptyprovides
the same functionality. All the same, you can use ISBLANKif you need to. The following two examples
are equivalent and return Trueif A1 is empty or Falseif A1 is not empty:
MsgBox Evaluate(“=ISBLANK(A1)”)
MsgBox [ISBLANK(A1)]
The advantage of the first technique is that you can generate the string value using code, which makes it
very flexible. The second technique is shorter, but you can only change the expression by editing your
code. The following procedure displays a Trueor Falsevalue to indicate whether or not the active cell
is empty, and illustrates the flexibility of the first technique:
Sub IsActiveCellEmpty()
Dim sFunctionName As String, sCellReference As String
sFunctionName = “ISBLANK”
sCellReference = ActiveCell.Address
MsgBox Evaluate(sFunctionName & “(“ & sCellReference & “)”)
End Sub
Note that you cannot evaluate an expression containing variables using the second technique.
The following two lines of code show you two ways you can use Evaluateto generate a reference to a
Rangeobject, and assign a value to that object:
Evaluate(“A1”).Value = 10
[A1].Value = 10
The first expression is unwieldy and is rarely used, but the second is a convenient way to refer to a
Rangeobject, although it is not very flexible. You can further shorten the expressions by omitting the
Valueproperty, because this is the default property of the Rangeobject:
[A1] = 10
More interesting uses of Evaluateinclude returning the contents of a workbook’s Namescollection and
efficiently generating arrays of values. The following code creates a hidden name to store a password.
Hidden names cannot be seen in the Insert➪Name➪Define dialog box, so they are a convenient way to
store information in a workbook without cluttering the user interface:
Names.Add Name:=”PassWord”, RefersTo:=”Bazonkas”, Visible:=False
You can then use the hidden data in expressions like the following:
sUserInput = InputBox(“Enter Password”)
If sUserInput = [PassWord] Then
...
The use of names for storing data is discussed in more detail in Chapter 5.
67
Chapter 2: The Application Object
Documents you may be interested
Documents you may be interested