xviii
Contents
Creating Offline Cubes
521
Creating an Offline Cube Manually
521
Using the CreateCubeFile Method
521
Creating an Offline Cube Using ADO MD and VBA
522
Summary
523
Chapter 24: Excel and the Internet
525
What Can the Internet Do for You?
526
Using the Internet for Storing Workbooks
526
Using the Internet as a Data Source
527
Opening Web Pages as Workbooks
528
Using Web Queries
528
Parsing Web Pages for Specific Information
530
Using the Internet to Publish Results
531
Setting Up a Web Server
532
Saving Worksheets as Web Pages
532
Creating Interactive Web Pages
533
Using the Internet as a Communication Channel
533
Communicating with a Web Server
534
Summary
536
Chapter 25: International Issues
537
Changing Windows Regional Settings and the Office 2007 UI Language
537
Responding to Regional Settings and the Windows Language
538
Identifying the User’s Regional Settings and Windows Language
538
VBA Conversion Functions from an International Perspective
539
Interacting with Excel
545
Sending Data to Excel
545
Reading Data from Excel
548
The Rules for Working with Excel
548
Interacting with Users
549
Paper Sizes
549
Displaying Data
549
Interpreting Data
550
The xxxLocal Properties
550
The Rules for Working with Your Users
551
Excel 2007’s International Options
552
Features That Don’t Play by the Rules
554
The OpenText Function
555
The SaveAs Function
556
The ShowDataForm Sub Procedure
556
Pdf rotate single page - 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; pdf save rotated pages
Pdf rotate single page - 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; rotate one page in pdf
xix
Contents
Pasting Text
557
PivotTable Calculated Fields and Items,and Conditional Format and 
Data Validation Formulas
557
Web Queries
558
=TEXT() Worksheet Function
558
The Range.Value, Range.Formula, and Range.FormulaArray Properties
559
The Range.AutoFilter Method
559
The Range.AdvancedFilter Method
559
The Application.Evaluate, Application.ConvertFormula, and 
Application.ExecuteExcel4Macro Functions
560
Responding to Office 2007 Language Settings
560
Where Does the Text Come From?
560
Identifying the Office UI Language Settings
562
Creating a Multilingual Application
562
Working in a Multilingual Environment
564
The Rules for Developing a Multilingual Application
565
Some Helpful Functions
565
The bWinToNum Function
566
The bWinToDate Function
566
The sFormatDate Function
567
The ReplaceHolders Function
568
Summary
568
Chapter 26: Programming the VBE
571
Identifying VBE Objects in Code
572
The VBE Object
572
The VBProject Object
572
The VBComponent Object
573
The CodeModule Object
574
The CodePane Object
574
The Designer Object
574
Starting Up
575
Adding Menu Items to the VBE
576
Working with Workbooks
580
Working with Code
589
Working with UserForms
594
Working with References
598
COM Add-ins
599
Summary
600
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Able to remove a single page from adobe PDF document in VB.NET. using RasterEdge. XDoc.PDF; How to VB.NET: Delete a Single PDF Page from PDF File.
how to rotate a page in pdf and save it; rotate pdf page by page
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
application. Able to remove a single page from PDF document. Ability Demo Code: How to Delete a Single PDF Page from PDF File in C#.NET. How to
rotate single page in pdf reader; how to rotate all pages in pdf
xx
Contents
Chapter 27: Programming with the Windows API
601
Anatomy of an API Call
602
Interpreting C-Style Declarations
603
Constants, Structures, Handles, and Classes
606
What If Something Goes Wrong?
609
Wrapping API Calls in Class Modules
611
Some Example Classes
616
A High-Resolution Timer Class
616
Class Module CHighResTimer
616
Freeze a UserForm
618
A System Info Class
619
Modifying UserForm Styles
622
Window Styles
623
The CFormChanger Class
624
Resizable UserForms
625
Absolute Changes
626
Relative Changes
627
The CFormResizer Class
628
Summary
634
Appendix A: Excel 2007 Object Model
635
Appendix B: VBE Object Model
971
Appendix C:
Office 2007 Object Model
995
Index
1079
How to C#: Basic SDK Concept of XDoc.PDF for .NET
insert, delete, re-order, copy, paste, cut, rotate, and save or query data and save the PDF document. The PDFPage class presents a single page in a PDFDocument
how to rotate page in pdf and save; pdf reverse page order online
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
C#.NET PDF file & pages edit, C#.NET PDF pages extract, copy, paste, C#.NET rotate PDF pages, C# Users can view PDF document in single page or continue
how to reverse pages in pdf; rotate pages in pdf
Acknowledgments
John Green
Thanks to Katie Mohr and Michael Alexander for getting us back together, and thanks to Brian Herrmann
for melding us into a coherent whole.
Dick Kusleika deserves special mention as our technical editor. He has saved us from some embarrass-
ment and suggested numerous improvements in the examples and text. Thank you, Dick.
I would like to thank Michael Beale for seeding some of the examples of interaction with other Office
applications.
Finally, a heartfelt thank you to my fellow authors. I have handled the basics and Michael, Rob, and
Stephen have supplied the benefits of their specialized knowledge in the higher-level topics to take us
further than I would have ever dared on my own.
Stephen Bullen
First and foremost, I’d like to thank my long-suffering girlfriend, Clare, for putting up with all the late
nights and lonely evenings she endured while I wrote this update. Thanks also goes to Mike Alexander
and Katie Mohr for their efforts in resurrecting the original author team to write this update to the book,
and to John and Rob for agreeing to do it—your professionalism leaves me humbled.
Dick Kusleika is the unsung hero of this book. While the four authors could concentrate on our own
chapters, Dick had to carefully read every word and check its accuracy. The credit for the amazingly
high quality of this work goes to him, while any remaining errors are ours.
Of course, without the Excel team at Microsoft, we wouldn’t have had anything to write about, so thanks
goes to David Gainer and his team for crafting an amazing update to a quite mature product, and for
being so open with the Excel MVPs and wider public over the past few years. The Ribbon is the biggest
change that has happened to Office for many years and Jensen Harris and Savraj Dhanjal and their teams
have done a brilliant job in designing the Ribbon’s UI and programmability model, respectively. I’d par-
ticularly like to thank them for listening to the (sometimes harsh) criticism from the beta testers, and for
updating their designs in response.
Last, I’d like to thank you, the reader, for buying this book, writing the five-star reviews on Amazon and
recommending it to all your friends and colleagues!
Mike Alexander
I would like to first thank the original authors—John Green, Stephen Bullen, and Rob Bovey—for agreeing
to reclaim their work. Believe me when I say that these men are very well respected among professional
Excel developers, and it is an absolute honor to be associated with their work.
C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
Both single page and multipage tiff image files can be created from PDF. Supports tiff compression selection. Supports for changing image size.
pdf reverse page order preview; how to rotate all pages in pdf
VB.NET PDF: Basic SDK Concept of XDoc.PDF
insert, delete, re-order, copy, paste, cut, rotate, and save or query data and save the PDF document. The PDFPage class presents a single page in a PDFDocument
rotate pdf page and save; how to permanently rotate pdf pages
xxii
Acknowledgments
Abig thank you goes to Katie Mohr for joining me in lobbying to get the original author team back on
board. It is safe to say that without her efforts, this title would not be the superb product it is today. I would
also like to thank Brian Herrmann and the professionals at Wiley for all of their time and resources in help-
ing this ambitious title come to fruition.
Dick Kusleika is definitely the “the fifth Beatle” of this book. Dick clearly put a lot of time and effort into
keeping us honest and ensuring that our work is as clean as possible. Asolid technical editor is paramount
for an all-encompassing reference like this one, and Dick Kusleika really came through for all of us.
Avery special thank you to Mary for putting up with all of my crazy projects. The royalty checks are in
the mail, my love.
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
With VB.NET PDF SDK, PDF document page can be rotated to 90, 180, and 270 in clockwise. Both a single page and whole file pages can be rotated and saved as
pdf reverse page order online; how to change page orientation in pdf document
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
all. This guiding page will help you merge two or more PDF documents into a single one in a Visual Basic .NET imaging application.
how to rotate one page in pdf document; rotate pdf page
Introduction
Excel made its debut on the Macintosh in 1985 and has never lost its position as the most popular
spreadsheet application in the Mac environment. In 1987, Excel was ported to the PC, running under
Windows. It took many years for Excel to overtake Lotus 1-2-3, which was one of the most successful
software systems in the history of computing at that time.
Anumber of spreadsheet applications enjoyed success prior to the release of the IBM PC in 1981. Among
these were VisiCalc and Multiplan. VisiCalc started it all, but fell by the wayside early on. Multiplan was
Microsoft’s predecessor to Excel, using the R1C1 cell addressing which is still available as an option in
Excel. But it was 1-2-3 that shot to stardom very soon after its release in 1982 and came to dominate the
PC spreadsheet market.
Early Spreadsheet Macros
1-2-3 was the first spreadsheet application to offer spreadsheet, charting, and database capabilities in one
package. However, the main reason for its runaway success was its macro capability. Legend has it that
the 1-2-3 developers set up macros as a debugging and testing mechanism for the product. It is said that
they only realized the potential of macros at the last minute, and included them in the final release
pretty much as an afterthought.
Whatever their origins, macros gave non-programmers a simple way to become programmers and
automate their spreadsheets. They grabbed the opportunity and ran. At last they had a measure of
independence from the computer department.
The original 1-2-3 macros performed a task by executing the same keystrokes that a user would use to
carry out the same task. It was, therefore, very simple to create a macro because there was virtually nothing
new to learn to progress from normal spreadsheet manipulation to programmed manipulation. All you
had to do was remember what keys to press and write them down. The only concessions to traditional pro-
gramming were eight extra commands, the /xcommands. The /xcommands provided some primitive
decision-making and branching capabilities, a way to get input from a user, and a way to construct menus.
One major problem with 1-2-3 macros was their vulnerability. The multi-sheet workbook had not yet been
invented and macros had to be written directly into the cells of the spreadsheet they supported, along with
input data and calculations. Macros were at the mercy of the user. For example, they could be inadvertently
disrupted when a user inserted or deleted rows or columns. Macros were also at the mercy of the program-
mer. Abadly designed macro could destroy itself quite easily while trying to edit spreadsheet data.
Despite the problems, users reveled in their newfound programming ability and millions of lines of code
were written in this cryptic language, using arcane techniques to get around its many limitations. The
world came to rely on code that was often badly designed, nearly always poorly documented, and at all
times highly vulnerable, often supporting enterprise-critical control systems.
xxiv
Introduction
The XLM Macro Language
The original Excel macro language required you to write your macros in a macro sheet that was saved in
a file with an .xlmextension. In this way, macros were kept separate from the worksheet, which was
saved in a file with an .xlsextension. These macros are now often referred to as XLM macros, or Excel 4
macros, to distinguish them from the VBAmacro language introduced in Excel Version 5.
The XLM macro language consisted of function calls, arranged in columns in the macro sheet. There
were many hundreds of functions necessary to provide all the features of Excel and allow programmatic
control. The XLM language was far more sophisticated and powerful than the 1-2-3 macro language,
even allowing for the enhancements made in 1-2-3 Releases 2 and 3. However, the code produced was
not much more intelligible.
The sophistication of Excel’s macro language was a two-edged sword. It appealed to those with high
programming aptitude, who could tap the language’s power, but was a barrier to most users. There was
no simple relationship between the way you  manually operated Excel and the way you programmed it.
There was a very steep learning curve involved in mastering the XLM language.
Another barrier to Excel’s acceptance on the PC was that it required Windows. The early versions of
Windows were restricted by limited access to memory, and Windows required much more horsepower
to operate than DOS. The Graphical User Interface was appealing, but the tradeoffs in hardware cost and
operating speed were perceived as problems.
Lotus made the mistake of assuming that Windows was a flash in the pan, soon to be replaced by OS/2,
and did not bother to plan a Windows version of 1-2-3. Lotus put its energy into 1-2-3/G, a very nice GUI
version of 1-2-3 that only operated under OS/2. This one-horse bet was to prove the undoing of 1-2-3.
By the time it became clear that Windows was here to stay, Lotus was in real trouble as it watched users
flocking to Excel. The first attempt at a Windows version of 1-2-3, released in 1991, was really 1-2-3
Release 3 for DOS in a thin GUI shell. Succeeding releases have closed the gap between 1-2-3 and Excel,
but have been too late to stop the almost universal adoption of Microsoft Office by the market.
Excel 5
Microsoft made a brave decision to unify the programming code behind its Office applications by intro-
ducing VBA(Visual Basic for Applications) as the common macro language in Office. Excel 5, released
in1993, was the first application to include VBA. It was gradually introduced into the other Office appli-
cations in subsequent versions of Office. Excel, Word, Access, PowerPoint, and Outlook all use VBAas
their macro language in Office.
Since the release of Excel 5, Excel has supported both the XLM and the VBAmacro languages, and the
support for XLM should continue into the foreseeable future, but has decreased in significance as users
switch to VBA.
VBAis an object-oriented programming language that is identical to the Visual Basic programming lan-
guage in the way it is structured and in the way it handles objects. If you learn to use VBAin Excel, you
know how to use it in the other Office applications.
xxv
Introduction
The Office applications differ in the objects they expose to VBA. To program an application, you need
tobe familiar with its object model. The object model is a hierarchy of all the objects that you find in the
application. For example, part of the Excel object model tells us that there is an Applicationobject that
contains a Workbookobject that contains a Worksheetobject that contains a Rangeobject.
VBAis somewhat easier to learn than the XLM macro language, is more powerful, is generally more
efficient, and allows you to write well-structured code. You can also write badly structured code, but by
following a few principles, you should be able to produce code that is readily understood by others and is
reasonably easy to maintain.
In Excel 5, VBAcode was written in modules, which were sheets in a workbook. Worksheets, chart
sheets, and dialog sheets were other types of sheets that could be contained in an Excel 5 workbook.
Excel 97
In Excel 97, Microsoft introduced some dramatic changes in the VBAinterface and some changes in the
Excel object model. From Excel 97 onward, modules are not visible in the Excel application window and
modules are no longer objects contained by the Workbookobject. Modules are contained in the VBApro-
ject associated with the workbook and can only be viewed and edited in the Visual Basic Editor (VBE)
window.
In addition to the standard modules, class modules were introduced, which allow you to create your
own objects and access application events. CommandBars were introduced to replace menus and tool-
bars, and UserForms replaced dialog sheets. Like modules, UserForms can only be edited in the VBE
window. As usual, the replaced objects are still supported in Excel, but are considered to be hidden
objects and are not documented in the Help screens.
In previous versions of Excel, objects such as buttons embedded in worksheets could only respond to a
single event, usually the Clickevent. Excel 97 greatly increased the number of events that VBAcode
can respond to and formalized the way in which this is done by providing event procedures for the
workbook, worksheet, and chart sheet objects. For example, in Excel 2007 workbooks have 29 events
they can respond to, such as BeforeSaveBeforePrint, and BeforeClose. Excel 97 also introduced
ActiveX controls that can be embedded in worksheets and UserForms. ActiveX controls can respond to
awide range of events such as GotFocusMouseMove, and DblClick.
The VBE provides users with much more help than was previously available. For example, as you write
code, pop-ups appear with lists of appropriate methods and properties for objects, and arguments and
parameter values for functions and methods. The Object Browseris much better than previous versions,
allowing you to search for entries, for example, and providing comprehensive information on intrinsic
constants.
Amodule is really just a word-processing document with some special characteris-
tics that help you write and test code.
xxvi
Introduction
Microsoft has provided an Extensibility library that makes it possible to write VBAcode that manipu-
lates the VBE environment and VBAprojects. This makes it possible to write code that can directly
access code modules and UserForms. It is possible to set up applications that indent module code or
export code from modules to text files, for example.
Excel 2000
Excel 2000 did not introduce dramatic changes from a VBAprogramming perspective. There were a
large number of improvements in the Office 2000 and Excel 2000 user interfaces and improvements in
some Excel features such as PivotTables. Anew PivotChart feature was added. Web users benefited the
most from Excel 2000, especially through the ability to save workbooks as web pages. There were also
improvements for users with a need to share information, through new online collaboration features.
One long-awaited improvement for VBAusers was the introduction of modeless UserForms. Previously,
Excel only supported modal dialog boxes, which take the focus when they are onscreen so that no other
activity can take place until they are closed. Modeless dialog boxes allow the user to continue with other
work while the dialog box floats above the worksheet. Modeless dialog boxes can be used to show a
“splash” screen when an application written in Excel is loaded and to display a progress indicator while
a lengthy macro runs.
Excel 2002
Excel 2002 also introduced only incremental changes. Once more, the major improvements were in the
user interface rather than in programming features. Microsoft continued to concentrate on improving
web-related features to make it easier to access and distribute data using the Internet. New features that
can be useful for VBAprogrammers included a new Protectionobject, SmartTags, RTD (Real Time
Data), and improved support for XML.
The Protectionobject allows selective control over the features that are accessible to users when you
protect a worksheet. You can decide whether users can sort, alter cell formatting, or insert and delete
rows and columns, for example. There is also a new AllowEditRangeobject that you can use to specify
which users can edit specific ranges and whether they must use a password to do so. You can apply dif-
ferent combinations of permissions to different ranges.
SmartTags allow Excel to recognize data typed into cells as having special significance. For example,
Excel 2002 can recognize stock market abbreviations, such as MSFT for Microsoft Corporation. When
Excel sees an item like this, it displays a SmartTag symbol that has a pop-up menu. You can use the
menu to obtain related information, such as the latest stock price or a summary report on the company.
Microsoft provides a kit that allows developers to create new SmartTag software to make data available
throughout an organization or across the Internet.
RTD allows developers to create sources of information that users can draw from. Once you establish a
link to a worksheet, changes in the source data are automatically passed on. An obvious use for this is to
obtain stock prices that change in real time during the course of trading. Other possible applications
include the ability to log data from scientific instruments or industrial process controllers.
xxvii
Introduction
Improved XMLsupport meant that it was getting easier to create applications that exchange data
through the Internet and intranets. As everyone becomes more dependent on these burgeoning tech-
nologies, XMLsupport becomes of increasing importance.
Excel 2003
Excel 2003 continued to introduce new web-orientated features, including improved support for XML
and improved online help and the ability to share and update data using Windows SharePoint Services.
Excel 2003 introduced corrected versions of a number of Excel’s statistical functions.
The List feature was introduced to allow easier management of a database table. Lists make it easier to
sort, filter, and edit data. Lists can also be integrated into SharePoint to share data via the Internet.
New features were introduced to enhance document sharing and management of access rights. Side-by-
side comparison of workbooks was also introduced.
Excel 2007
Excel 2007 represents the greatest change in Excel since Excel 97. The most impact will be made by the
new user interface, which uses the Ribbon as the primary navigation tool, replacing menus and toolbars.
Although the Ribbon is probably much easier to digest for new users, it means that experienced users
need to be re-educated. From a developer’s point of view, the Ribbon is a major challenge requiring a
whole new approach in application interfaces and a completely new set of programming rules.
Excel 2007 lifts many of the old limits, supporting 1,048,576 rows and 16,384 columns, for example. There
are many changes to the way features are accessed so that PivotTables and charts are more accessible and
easier to manipulate, as are many other features.
The List feature of Excel 2003, which handles database tables, has become the Table feature in Excel 2007
and is easier to use and has more capabilities. Sorting and filtering have been redesigned. You can sort on
up to 64 keys simultaneously, for example. Enhancements have also been made in the range of external
data sources that are now accessible, and the ways in which the data is accessed have been improved.
New file formats are used in Excel 2007, which are not compatible with previous versions although data
can be saved back to older formats with the loss of any new features. If you want to have VBAcode
saved with a workbook, the format of the file is different compared with a standard workbook file.
Security concepts have been redesigned, introducing the Trust Center. You can now designate folders as
“trusted,” and macros in these folders will be allowed to run without needing digital certificates.
For a VBAprogrammer there are a number of new objects to be discovered and new concepts to be
learned.
Documents you may be interested
Documents you may be interested