display pdf winform c# : Rotate pdf page few degrees software application project winforms html windows UWP 7053154973-Excel%202007%20VBA%20Programmers%20Reference%20-%20Wrox%20200761-part690

Private Sub DeleteMenus()
Dim oCtl As CommandBarControl
On Error Resume Next
For Each oCtl In Application.VBE.CommandBars.FindControls(Tag:=msTAG)
oCtl.Delete
Next
End Sub
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
‘ Subroutine: AddMenu
‘ Purpose:    Add a menu to a menu bar, storing the procedure to run 
‘             in the control’s OnAction
Private Sub AddMenu(ByRef oBar As CommandBar, ByVal sCaption As String, _
ByVal sProcedure As String, _
Optional ByVal lPosition As Long, _
Optional ByVal lFaceID As Long, _
Optional ByVal lStyle As MsoButtonStyle = msoButtonCaption, _
Optional ByVal sTooltip As String)
Dim oBtn As CommandBarButton
‘If we were given a position, add it there. If not, add it at the end
If lPosition > 0 Then
Set oBtn = oBar.Controls.Add(msoControlButton, , , lPosition, True)
Else
Set oBtn = oBar.Controls.Add(msoControlButton, , , , True)
End If
With oBtn
.Tag = msTAG
.Caption = sCaption
.FaceId = lFaceID
.Style = lStyle
.TooltipText = sTooltip
.OnAction = “‘“ & ThisWorkbook.Name & “‘!” & sProcedure
End With
End Sub
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
‘ Subroutine: mbtnEvents_Click
‘ Purpose:    Handle the click event of all our menus, by running the procedure
‘             stored in the button’s OnAction property
Private Sub mbtnEvents_Click(ByVal Ctrl As Office.CommandBarButton, _
CancelDefault As Boolean)
On Error Resume Next    ‘In case the routine is wrong/doesn’t exist
578
Chapter 26: Programming the VBE
Rotate pdf page few degrees - 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#
saving rotated pdf pages; rotate pages in pdf and save
Rotate pdf page few degrees - 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 individually; how to rotate page in pdf and save
‘Run the routine given by the commandbar control’s OnAction property
Application.Run Ctrl.OnAction
‘We handled it OK
CancelDefault = True
End Sub
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
‘ Subroutine: Class_Terminate
‘ Purpose:    Remove our menus when the class is destroyed,
‘             i.e. as the workbook is unloaded
Private Sub Class_Terminate()
DeleteMenus
End Sub
Throughout the rest of this chapter, you’ll be creating menus by adding code in Class_Initializeto
call the AddMenuprocedure, passing in the command bar for the menu to be added to and the properties
for the menu.
The names for each of the top-level CommandBars in the VBE are shown in the following table. Note that
Excel should always recognize these names, regardless of the user’s choice of language for the Office User
Interface (apart from a few rare exceptions, such as the Dutch menus, in which case you’ll get a run-time
error). The same is not true for the menu items placed on these toolbars. The only language-independent
way to locate specific built-in menu items is to use their ID numbers. Aroutine to list the ID numbers of
built-in menu items is provided in Chapter 15.
Name
Description
Menu Bar
The normal VBE menu bar
Standard
The normal VBE toolbar
Edit
The VBE edit toolbar, containing useful code-editing tools
Debug
The VBE debug toolbar, containing typical debugging tools
UserForm
The VBE UserForm toolbar, containing useful form-editing tools
MSForms
The popup menu for a UserForm (shown when you right-click the
UserForm background)
MSForms Control
The popup menu for a normal control on a UserForm
MSForms Control 
The popup menu that appears when you right-click a group of 
Group
controls on a UserForm
MSForms MPC
The popup menu for the Multi-Page control
MSForms Palette
The popup menu that appears when you right-click a tool in the
Control Toolbox
Table continued on following page
579
Chapter 26: Programming the VBE
VB.NET Image: Using VB.NET Web Image Viewer to Process Web Images
types, including JPEG, PNG, GIF, BMP, TIFF, PDF, Word. btnRotate270 API can be used to rotate currently displayed image or document page 90 degrees
rotate pdf pages and save; rotate pdf pages
Process Images in Web Image Viewer | Online Tutorials
Commonly used document types are supported, including PDF, multi-page TIFF This JavaScript API is used to rotate the current image / page 90 degrees
permanently rotate pdf pages; change orientation of pdf page
Name
Description
MSForms Toolbox
The popup menu that appears when you right-click one of the tabs at
the top of the Control Toolbox
MSForms DragDrop
The popup menu that appears when you use the right mouse button to
drag a control between tabs in the Control Toolbox, or onto a UserForm
Code Window
The popup menu for a code window
Code Window (Break)
The popup menu for a code window, when in Break (debug) mode
Watch Window
The popup menu for the Watch window
Immediate Window
The popup menu for the Immediate window
Locals Window
The popup menu for the Locals window
Project Window
The popup menu for the Project Explorer
Project Window (Break)
The popup menu for the Project Explorer, when in Break mode
Object Browser
The popup menu for the Object Browser
Property Browser
The popup menu for the Properties window
Docked Window
The popup menu that appears when you right-click the title bar of a
docked window
Working with Workbooks
The ability to save a workbook from the VBE is built into Office 2007, but for a full complement of file oper-
ations, you need to add routines to create, open, and close workbooks and display the standard workbook
properties form. Adding a Most Recently Used list to the VBE is left as an exercise for the reader.
Start with the simple code to create a new workbook, and then test the Add-in to prove that all the setup
you’ve done so far works as expected. Then add code to the CMenuHandlerClass_Initializeproce-
dure to create the menus. Here you’re adding a menu item to the File menu and a button to the Standard
toolbar:
Private Sub Class_Initialize()
‘Just in case some of our menus got left behind, remove any previous remnants
DeleteMenus
‘Create the menus
AddMenu Application.VBE.CommandBars(“File”), “&New Workbook”, _
“FileNewBook”, 1, 18, msoButtonIconAndCaption, “Create new workbook”
AddMenu Application.VBE.CommandBars(“Standard”), “&New Workbook”, _
“FileNewBook”, 3, 18, msoButtonIcon, “Create new workbook”
580
Chapter 26: Programming the VBE
C# Image: C# Image Web Viewer Processing Tutorial; Process Web Doc
In order to rotate a current web image or by editing your C# project web page Default.aspx provide powerful & profession imaging controls, PDF document, tiff
how to rotate one page in a pdf file; rotate single page in pdf reader
VB.NET Image: Generate GS1-128/EAN-128 Barcode on Image & Document
resolution barcode.Rotate = Rotate.Rotate0 'set rotate barcode.DrawBarcode Its supported document types are PDF, Word and EAN-128 barcode on multi-page TIFF/PDF
reverse pdf page order online; rotate pdf page few degrees
‘Associate our event-hook variable with any one of our menus.
On Error Resume Next   ‘In case we don’t find any
Set mbtnEvents = Application.VBE.CommandBars.FindControl( _
Type:=msoControlButton, Tag:=msTAG)
End Sub
Add a new module called modMenuFileand copy in the following code. The rest of the file-related rou-
tines will be added to this module later:
Option Explicit
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
‘ Subroutine: FileNewBook
‘ Purpose:    Create a new workbook
Sub FileNewBook()
‘Just ignore any errors
On Error Resume Next
‘Create a new workbook
Application.Workbooks.Add
‘Refresh the VBE display
With Application.VBE.MainWindow
.Visible = False
.Visible = True
End With
End Sub
This just adds a new blank workbook and refreshes the VBE display. Note that the VBE Project Explorer
does not always update correctly when workbooks are added and removed through code. The easiest
way to refresh the VBE display is to hide and then reshow the main VBE window.
First, check that the Add-in compiles, using the Debug➪Compile menu. If any compile errors are high-
lighted, check your code against the previous three listings. To run the Add-in, place the cursor within
the Workbook_Openprocedure and press F5 to run it. If all goes well, a new menu item will be added to
the VBE File menu and a standard New icon will appear on the VBE toolbar, just to the left of the Save
icon, as shown in Figures 26-2 and 26-3.
When you click the button, a new workbook will be created in Excel and you will see its VBProject
added to the Project Explorer. Congratulations, you have programmed the VBE.
581
Chapter 26: Programming the VBE
VB Imaging - Linear ITF-14 Barcode Generator
Spend a few seconds creating ITF-14 barcode in Resolution = 96 'set rotation barcode.Rotate = Rotate.Rotate0 barcode to Create ITF-14 in Certain PDF Page Area.
pdf rotate single page; reverse page order pdf online
C# TIFF: Create Linear and 2D Barcodes on TIFF Document Using C#
C# TIFF PDF - 417 Creating, C# TIFF ISBN Creating. Creator Add-on for TIFF allows C# users to generate GS1-128/EAN-128 barcode on TIFF file page with high print
pdf page order reverse; how to rotate one page in pdf document
Figure 26-2
Figure 26-3
By the end of this chapter, you’ll have functionality within the VBE to:
Create a new workbook
Open an existing workbook
Save a workbook (this is built into the VBE)
Close a workbook
Display a workbook’s Propertiesdialog
For the Openroutine, another menu item will be added to the File menu, and another standard button
will be added to the toolbar. For the Closeand Propertiesroutines, an item will once again be added
tothe File menu, but it will also be added to the Project Explorer popup menu, allowing you to close a
VBProjectby right-clicking it in the Project Explorer. The following additions to the Class_Initialize
procedure will achieve this:
AddMenu Application.VBE.CommandBars(“File”), “&Open Workbook”, _
“FileOpenBook”, 2, 23, msoButtonIconAndCaption, “Open a workbook”
AddMenu Application.VBE.CommandBars(“Standard”), “&Open Workbook”, _
“FileOpenBook”, 4, 23, msoButtonIcon, “Open a workbook”
AddMenu Application.VBE.CommandBars(“File”), “Close &Workbook”, _
“FileCloseBook”, 3, , , _
“Close the workbook containing the active project”
AddMenu Application.VBE.CommandBars(“Project Window”), “Close &Workbook”, _
“FileCloseBook”, , , , _
582
Chapter 26: Programming the VBE
“Close the workbook containing the active project”
AddMenu Application.VBE.CommandBars(“File”), “Workbook Proper&ties”, _
“FileBookProps”, 4, , , “Workbook Properties”
AddMenu Application.VBE.CommandBars(“Project Window”), “Workbook Proper&ties”, _
“FileBookProps”, , , , “Workbook Properties”
Note that the Close menu does not have a standard image, so the lFaceIDparameter has been left out, and
because you haven’t specified a position, it is added to the bottom of the Project Explorer popup menu.
When opening a workbook in Excel, you can hold down the Shift key to prevent any macros from run-
ning. To accurately simulate that functionality, a test should be made to see if the Shift key is held down
when the menu button is clicked, and to turn off any events if this is the case. Unfortunately, if the user
holds down the Shift key when a workbook is opened in the VBE, the routine will stop dead (see Microsoft
KnowledgeBase article Q175223 for the gory details at http://support.microsoft.com/kb/q175223/,
which lists it as a bug in Excel 97, but it’s still there in Excel 2007). Two workarounds are to use the Ctrl
key for the same effect or wait until the Shift key is released before opening the workbook. The problem
with waiting for the Shift key to be released is that the users will usually keep the key pressed until they
see the file opened, so waiting for it to be released will just appear as though Excel has crashed. 
You’ll need a module in your Add-in for common utility functions, so add a standard module called
modCommon, with the following code that uses Windows API calls to check the state of the Shift key:
Option Explicit
‘The Add-In title is shown on various message boxes
Public Const psAddinTitle As String = “Excel 2007 VBA Prog Ref VBE Tools”
‘Windows API call to see if the Shift, Ctrl and/or Alt keys are pressed
Private Declare Function GetAsyncKeyState Lib “user32” ( _
ByVal vKey As Long) As Integer
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
‘ Subroutine: fnGetShiftCtrlAlt
‘ Purpose:    Uses a Windows API call to detect if the shift, ctrl and/or 
‘             alt keys are pressed
Function fnGetShiftCtrlAlt() As Integer
Dim iKeys As Integer
Const VK_SHIFT As Long = &H10
Const VK_CONTROL As Long = &H11
Const VK_ALT As Long = &H12
‘Check to see if the Shift, Ctrl and Alt keys are pressed
If GetAsyncKeyState(VK_SHIFT) <> 0 Then iKeys = iKeys + 1
If GetAsyncKeyState(VK_CONTROL) <> 0 Then iKeys = iKeys + 2
If GetAsyncKeyState(VK_ALT) <> 0 Then iKeys = iKeys + 4
fnGetShiftCtrlAlt = iKeys
End Function
583
Chapter 26: Programming the VBE
The PublicDeclareFunctionline tells VBAabout a function that’s available in Windows to return
whether the Shift, Ctrl, or Alt keys are held down—see Chapter 27 for more information about these
types of calls. For the Openroutine, Excel’s GetOpenFilenamemethod will be used to retrieve the name
of a file, and then open it. If the user holds down the Ctrl key, the application events will be turned off,
so the user can open the workbook without triggering any other code—within either the workbook
being opened or Excel’s application-level WorkbookOpenevent. If the user is not holding down the Ctrl
key, an attempt is made to run any Auto_Openroutines in the workbook. 
Add the following routine to the modMenuFilemodule:
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
‘ Subroutine: FileOpenBook
‘ Purpose:    Opens an existing workbook
Sub FileOpenBook()
Dim vFile As Variant, bCtrl As Boolean
Dim Wbk As Workbook
‘Use our error handler to display a message if something goes wrong
On Error GoTo ERR_HANDLER
‘Check if the Ctrl key is held down (1=Shift, 2=Ctrl, 4=Alt)
bCtrl = (fnGetShiftCtrlAlt And 2) = 2
‘Hide Excel, so the Open dialog appears in the VBE
Application.Visible = False
‘Get the filename to open (or False if cancelled)
vFile = Application.GetOpenFilename
‘Make Excel visible again
Application.Visible = True
‘If the user didn’t cancel, open the workbook, adding it to Excel’s MRU
If Not (vFile = False) Then
If bCtrl Then
‘If the user held the Ctrl key down, we should disable events and
‘not update links
Application.EnableEvents = False
Set Wbk = Workbooks.Open(Filename:=vFile, updatelinks:=0, AddToMru:=True)
‘Enable events again
Application.EnableEvents = True
Else
‘Shift not held down, so open the book normally and run Auto_Open
Set Wbk = Workbooks.Open(Filename:=vFile, AddToMru:=True)
Wbk.RunAutoMacros xlAutoOpen
End If
End If
584
Chapter 26: Programming the VBE
‘Refresh the VBE display
With Application.VBE.MainWindow
.Visible = False
.Visible = True
End With
‘No error, so Exit routine
Exit Sub
ERR_HANDLER:
‘Display the error message (in the VBE Window) and end the routine.
Application.Visible = False
MsgBox “An Error has occurred.” & vbCrLf & _
Err.Number & “: “ & Err.Description, vbOKOnly, psAddinTitle
Application.Visible = True
End Sub
Whenever a dialog is used that would normally be shown in the Excel window (including the built-in
dialogs, any UserForms, and even MsgBoxand InputBoxcalls), Excel automatically switches to its own
window to show the dialog. When developing applications for the VBE, however, you really want the
dialog to appear within the VBE window, not Excel’s. The easiest way to achieve this effect is to hide the
Excel window before showing the dialog, and then unhide it afterward.
The Closeroutine presents a new challenge. You are adding a Close Workbook menu item to the popup
menu for the Project Explorer, and hence you need to determine which VBProjectwas clicked. The
ActiveVBProjectproperty of the VBE provides this, but a way is needed to get from the VBProject
object to the workbook containing it. The method for doing this was described in the “Identifying VBE
Objects in Code” section at the start of this chapter, and the code is shown in the following listing. Add it
to the modCommonmodule, because it will be used in most of your functions:
Function fnActiveProjectBook() As Workbook
Dim oVBP As VBIDE.VBProject, oVBC As VBIDE.VBComponent
Dim sName As String
‘Get the VBProject that is active in the VBE
Set oVBP = Application.VBE.ActiveVBProject
On Error Resume Next
‘Try just reading the file name directly from the project
sName = oVBP.Filename
‘If any errors occur (e.g. the project is locked), 
‘assume we can’t find the workbook
On Error GoTo ERR_CANT_FIND_WORKBOOK
If sName <> “” Then
‘Strip off the path
If InStrRev(sName, “\”) <> 0 Then
585
Chapter 26: Programming the VBE
sName = Mid(sName, InStrRev(sName, “\”) + 1)
‘If it’s the name of a workbook, we found it! (it could be the name of a 
‘VBE project)
If fnIsWorkbook(sName) Then
Set fnActiveProjectBook = Workbooks(sName)
Exit Function
End If
End If
Else
‘Loop through all the VB Components in the project.
‘The ‘ThisWorbook’ component exposes the name of the workbook, but the
‘component may not be called “ThisWorkbook”!
For Each oVBC In oVBP.VBComponents
‘Only need to check Document types (i.e. Excel objects)
If oVBC.Type = vbext_ct_Document Then
‘Get the underlying name of the component
sName = oVBC.Properties(“Name”)
‘Is it the name of an open workbook
If fnIsWorkbook(sName) Then
‘Yes it is, but is it the correct one?
If Workbooks(sName).VBProject Is oVBP Then
‘We found it!
Set fnActiveProjectBook = Workbooks(sName)
Exit Function
End If
End If
End If
Next
End If
PTR_CANT_FIND:
‘We didn’t find the workbook, so display an error message in the VBE
Application.Visible = False
MsgBox “Unable to identify the workbook for this project.”, vbOKOnly, _
psAddinTitle
Application.Visible = True
Set fnActiveProjectBook = Nothing
Exit Function
ERR_CANT_FIND_WORKBOOK:
‘We had an error, so we can’t find the workbook.  
‘Continue with the clean-up code.
Resume PTR_CANT_FIND
End Function
586
Chapter 26: Programming the VBE
Function fnIsWorkbook(sBook As String) As Boolean
‘Use inline error handling to check for a workbook
On Error Resume Next
fnIsWorkbook = Len(Workbooks(sBook).Name) > 0
End Function
Now that you can identify which workbook corresponds to a VB Project, you can add the procedure to
close a workbook in the modMenuFilemodule:
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
‘ Subroutine: FileCloseBook
‘ Purpose:    Closes the workbook containing the active VB Project
Sub FileCloseBook()
Dim Wbk As Workbook, bCtrl As Boolean
‘Use our error handler to display a message if something goes wrong
On Error GoTo ERR_HANDLER
‘Try to get the workbook containing the active VB Project
Set Wbk = fnActiveProjectBook
‘If we didn’t find it, just quit
If Wbk Is Nothing Then Exit Sub
‘Check if the Ctrl key is held down (1=Shift, 2=Ctrl, 4=Alt)
bCtrl = (fnGetShiftCtrlAlt And 2) = 2
If bCtrl Then
‘Ctrl key is held down, so disable events and don’t run Auto_Close
‘Disable events, so we don’t run anything in the workbook being closed
Application.EnableEvents = False
‘Close the workbook - Excel will ask to save changes etc.
Wbk.Close
‘Enable events again
Application.EnableEvents = True
Else
‘Normal close so run any Auto_Close macros and close the workbook
Wbk.RunAutoMacros xlAutoClose
Wbk.Close
End If
‘Exit procedure, bypass error handling routine
Exit Sub
ERR_HANDLER:
‘Display the error message (in the VBE Window) and end the routine.
Application.Visible = False
587
Chapter 26: Programming the VBE
Documents you may be interested
Documents you may be interested