Enable all macros (not recommended, potentially dangerous code can run)—If this option is
selected, all macros in all workbooks and add-ins will be enabled and you will not be notified
when you open a workbook or add-in that contains VBAcode.
Trust access to the VBA project object model—Some VBA programs are designed to operate on
the VBA project of a workbook or add-in. These programs are usually tools designed for use by
VBA programmers. This checkbox must be checked in order for tools of this nature to function.
This checkbox is unchecked by default, and VBA code is not allowed to access the VBA project
of any workbook or add-in.
Figure 22-8
Message Bar
The Message Bar is a new feature in Office 2007. It alerts you to various document security-related
actions taken by Office and allows you to decide what to do about them. The difference between the
Message Bar and the dialog-based alerts from previous versions of Office that it replaced is that the
Message Bar is not modal and therefore does not interfere with your use of the application. You can
respond to the Message Bar immediately or choose to ignore it while you continue to work. If you ignore
the Message Bar alert, the security action it is warning you about will remain in effect by default until
you choose otherwise.
For example, in the Add-ins category, discussed previously, there is a setting that allows you to Require
Application Add-ins to be Signed by Trusted Publisher. If you choose this setting and attempt to open an
unsigned add-in, you will receive the Message Bar notification shown in Figure 22-9.
Figure 22-9
498
Chapter 22: The Trust Center and Document Security
Pdf rotate one 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#
pdf rotate page and save; pdf rotate single page
Pdf rotate one 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
save pdf rotate pages; rotate pdf pages in reader
The Message Bar notifies you that macros have been disabled in the unsigned add-in. The Message Bar
will remain visible, but will not interfere with your use of Excel until you click the Options button and
direct Excel to leave the unsigned add-in disabled or enable its macros.
The Message Bar category contains settings that control the display of the Message Bar, as well as a set-
ting related to Trust Center activity logging. The settings contained in the Message Bar category are
shown in Figure 22-10.
Figure 22-10
Note that the settings in the Message Bar category apply to all Office applications, not just Excel. The fol-
lowing list describes each of the settings in the Message Bar category:
Show the Message Bar in all applications when content has been blocked —This is the default
option. It directs the Trust Center to display a Message Bar notification when it has blocked
some content in your document, as specified by your current security settings.
Never show information about blocked content—Selecting this option will turn off the Message
Bar. The Trust Center will continue to block everything specified by your security settings, but it
will not notify you that it has done so. If something is not functioning in your application and
no Message Bar notification is being displayed, check to see if this option has been selected.
Enable Trust Center logging—Place a check mark in this box if you want the Trust Center to
record all security-related activities in a log file. The log file will be named XLTCD.LOG and will
be located in the directory C:\DocumentsandSettings\<username>\LocalSettings\
Application Data\Microsoft\Office\TCDiag.
External Content
The External Content category controls how Excel updates content external to a workbook. There are two
types of external content regulated by the External Content category settings. The first is content from
databases and other non-Excel sources, which are usually accessed through PivotTables, ListObjects, and
QueryTables. The second are external Excel workbooks, which are most commonly linked to from work-
sheet formulas. The two types of content are controlled by separate groups of settings under the External
Content category. These settings are shown in Figure 22-11.
499
Chapter 22: The Trust Center and Document Security
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
If you are looking for a solution to conveniently delete one page from your PDF document, you can use this VB.NET PDF Library, which supports a variety of PDF
pdf reverse page order preview; rotate pages in pdf permanently
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
C# developers can easily merge and append one PDF document to document imaging toolkit, also offers other advanced PDF document page processing and
pdf rotate page; how to rotate one page in pdf document
Figure 22-11
Security settings for Data Connections—These options apply to external connections to non-
Excel data sources.
Enable all Data Connections (not recommended) —If this option is selected, you will
not receive any warning when opening a workbook that contains connections to
external data. All external data connection features, including automatic data refresh-
ing of data, will be enabled.
Prompt user about Data Connections—If this option is selected, you will receive a
Message Bar notification when opening a workbook that contains connections to
external data. All external data connection features will be disabled until you click the
Options button on the Message Bar and choose to enable the connections. This is the
default option for this section.
Disable all Data Connections—If this option is selected, all external data connection
features will be disabled automatically, with no Message Bar notification.
Security settings for Workbook Links—These options apply to links to other Excel workbooks.
Enable automatic update for all Workbook Links (not recommended)—If this option
is selected, all links to external Excel workbooks will be updated automatically, and
you will not receive any Message Bar notification.
Prompt user on automatic update for Workbook Links —If this option is selected, you
will receive a Message Bar notification when opening a workbook that contains links
to external workbooks. The links will not be updated unless you click the Options
button on the Message Bar and choose to enable the links.
Disable automatic update of Workbook Links —If this option is selected, all links to
external Excel workbooks will be disabled, with no Message Bar notification given. 
500
Chapter 22: The Trust Center and Document Security
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.
rotate pdf page by page; rotate individual pdf pages reader
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Extract PDF Pages, Copy Pages from One PDF File and Paste into Others in C#.NET Program. Free PDF document processing SDK supports PDF page extraction, copying
rotate pdf page; save pdf rotated pages
Privacy Options
The Privacy Options category is a catchall category for a number of settings loosely related to privacy
and/or security that didn’t fit into any of the other Trust Center categories. The settings in the Privacy
Options category are shown in Figure 22-12.
Figure 22-12
The settings in the Privacy Options category have no use in or effect on VBAprograms, so they are not
covered in this section. What are covered in this section are the new RemoveDocumentInformation
method and DocumentInspectorscollection. Because the Excel user interface corresponding to these
new VBA capabilities is located in the Privacy Options category, it is examined here briefly.
The Document Inspector is a new feature of Office that allows you to search all the places in your docu-
ment where items of personal information might be stored and then remove those items. In the Trust
Center, if you click the Document Inspector button, the dialog in Figure 22-13 will be displayed.
You can choose which areas of your workbook you want to inspect and then click the Inspect button to
begin the process. The Document Inspector will analyze your workbook and produce a report of its find-
ings, using the dialog shown in Figure 22-14.
If the Document Inspector locates data in any of the places you directed it to analyze, it will give you the
option to remove that data. When using the Document Inspector, keep in mind that it is not smart. It
cannot tell the difference between data critical to your document and unwanted personal information.
The Document Inspector simply removes all data from the specified place if you click the Remove All
button.
501
Chapter 22: The Trust Center and Document Security
VB.NET PDF Annotate Library: Draw, edit PDF annotation, markups in
to display it. Thus, PDFPage, derived from REPage, is a programming abstraction for representing one PDF page. Annotating Process.
rotate pages in pdf; rotate pages in pdf expert
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Using RasterEdge Visual C# .NET PDF page deletion component, developers can easily select one or more PDF pages and delete it/them in both .NET web and Windows
rotate pdf page and save; rotate pdf pages on ipad
Figure 22-13
Figure 22-14
502
Chapter 22: The Trust Center and Document Security
C# PDF: C# Code to Process PDF Document Page Using C#.NET PDF
for developers on how to rotate PDF page in different two different PDF documents into one large PDF C# PDF Page Processing: Split PDF Document - C#.NET PDF
how to rotate all pages in pdf in preview; rotate pdf pages
C# PDF copy, paste image Library: copy, paste, cut PDF images in
This C#.NET example describes how to copy an image from one page of PDF document and paste it into another page. // Define input and output documents.
rotate pdf pages in reader; pdf rotate single page reader
You can probably see that, from the perspective of an Excel developer, the Document Inspector looks like
a very dangerous thing. If a user has unfettered access to your application workbook and that workbook
contains critical information in hidden rows, columns, or worksheets, the Document Inspector can easily
strip that data out, leaving the workbook crippled.
Fortunately, there is a simple way to prevent the Document Inspector from destroying your workbook. If
there are any protected worksheets in a workbook, it will prevent the Document Inspector from running
on the workbook. Therefore, to protect your workbooks from the Document Inspector, make sure they
contain at least one protected worksheet. This worksheet doesn’t need to contain any critical data, and it
can even be hidden from the user.
Automating Document Inspection
The new document inspection capabilities in Excel 2007 can also be a good thing. In previous versions of
Office, it was very easy to release sensitive information accidentally hidden in a workbook with other
data intended for release.
The Document Inspector, covered in the previous section, provides a manual method to remove this
type of information. If you are faced with processing a large number of workbooks, however, you need
an automated solution. This solution is provided by the new RemoveDocumentInformation method
and DocumentInspectors collection of the Workbook object in Excel 2007. These two features some-
what arbitrarily divide the Document Inspector sections into two groups with different capabilities for
each, as described in the following sections.
The RemoveDocumentInformation Method
The RemoveDocumentInformation method is a method of the Workbookobject that provides a VBA
interface to the features exposed by the Comments and Annotations and Document Properties and
Personal Information sections of the Document Inspector user interface. This method provides very
granular control over how the specific pieces of information that fall into these two sections are handled.
The RemoveDocumentInformation method takes a single argument that specifies the type of informa-
tion you want to remove from the workbook. If you want to remove more than one type of information,
you can call the method multiple times with different arguments each time. There is also an argument
that will remove all types of information covered by this method. This is the xlRDIAll argument shown
in the list that follows.
The following list shows the complete list of arguments to the RemoveDocumentInformation method:
xlRDIAll
xlRDIComment
xlRDIContentType
Note that like the Document Inspector user interface, the RemoveDocument
Informationmethod, and the DocumentInspectorscollection can only operate on
open workbooks with all worksheets unprotected.
503
Chapter 22: The Trust Center and Document Security
xlRDIDefinedNameComments
xlRDIDocumentManagementPolicy
xlRDIDocumentProperties
xlRDIDocumentServerProperties
xlRDIDocumentWorkspace
xlRDIEmailHeader
xlRDIInactiveDataConnections
xlRDIInkAnnotations
xlRDIlPublishInfo
xlRDIRemovePersonalInformation
xlRDIPrinterPath
xlRDIRoutingSlip
xlRDIScenarioComments
xlRDISendForReview
The type of information affected by most of these arguments is easy to determine based on the argument
name. If you wanted to remove document properties, you would obviously use the
xlRDIDocumentPropertiesargument, for example.
The following sample code shows how you would loop through all .xlsx format workbooks in the
C:\Filesfolder, and use the RemoveDocumentPropertiesmethod to remove all cell comments and
document properties from those workbooks:
Sub RemoveComments()
Dim strPath As String
Dim strFileName As String
Dim wkbBook As Workbook
Application.ScreenUpdating = False
strPath = “C:\Files\”
strFileName = Dir$(strPath & “*.xlsx”)
Do While Len(strFileName) > 0
Set wkbBook = Workbooks.Open(strPath & strFileName)
wkbBook.RemoveDocumentInformation xlRDIComments
wkbBook.RemoveDocumentInformation xlRDIDocumentProperties
wkbBook.Save
wkbBook.Close False
strFileName = Dir$()
Loop
Application.ScreenUpdating = True
End Sub
504
Chapter 22: The Trust Center and Document Security
Attempting to invoke the RemoveDocumentInformation method of a workbook that contains any pro-
tected worksheets will cause a VBA run-time error, so be sure all worksheets in the documents you want
to process are unprotected.
The DocumentInspectors Collection
The DocumentInspectors collection of the Workbook object contains a group of DocumentInspector
objects that provide a VBA interface to the features exposed by the last five sections of the Document
Inspector user interface. These features and their corresponding index numbers in the
DocumentInspectorscollection are shown here:
1—Custom XML Data
2—Headers and Footers
3—Hidden Rows and Columns
4—Hidden Worksheets
5—Invisible Content
Individual DocumentInspector objects can only be accessed by index number from the
DocumentInspectorscollection, or by iterating the entire collection with a For...Eachloop.
There are a number of differences between capabilities of the RemoveDocumentInformation method
and the DocumentInspector object. These differences are summarized as follows:
The DocumentInspector object has an Inspect method that can be used to passively determine
whether a workbook contains any information that would be removed by the object, without
actually doing so.
Using the Fix method of the DocumentInspector object to remove affected information is an
all-or-nothing process. For example, if you choose to remove headers and footers using the
DocumentInspectorobject designed for that purpose, all headers and footers in all worksheets
in the workbook will be removed. There is no way to limit the removal to headers or footers
alone.
If the Fix method of the DocumentInspector object fails as a result of the workbook contain-
ing protected worksheets, or for any other reason, it will simply return an error code and
description of the problem rather than causing a VBA run-time error.
The following sample code shows how you would loop through all .xlsx format workbooks in the
C:\Filesfolder and use a DocumentInspectorobject to remove all hidden rows and columns from
those workbooks. If the DocumentInspector object is unable to perform its task on a workbook, the
code will display a message box with the reason for the failure:
Sub RemoveHiddenRowsAndColumns()
Dim objDI As DocumentInspector
Dim uStatus As MsoDocInspectorStatus
Dim strResult As String
Dim strPath As String
505
Chapter 22: The Trust Center and Document Security
Dim strFileName As String
Dim wkbBook As Workbook
Application.ScreenUpdating = False
strPath = “C:\Files\”
strFileName = Dir$(strPath & “*.xlsx”)
Do While Len(strFileName) > 0
Set wkbBook = Workbooks.Open(strPath & strFileName)
Set objDI = wkbBook.DocumentInspectors(3)
objDI.Fix uStatus, strResult
If uStatus = msoDocInspectorStatusError Then
‘ If the Fix method could not complete, display the error.
MsgBox wkbBook.Name & “: “ & strResult, vbExclamation
Else
‘ Otherwise save the changes made to the workbook.
wkbBook.Save
End If
wkbBook.Close False
strFileName = Dir$()
Loop
Application.ScreenUpdating = True
End Sub
As demonstrated in this code sample, the two arguments to the DocumentInspector.Fix method are
actually return values. After the method has attempted to run, these arguments tell you what happened
and why.
Summary
All things considered, from a security standpoint Excel 2007 has become much less friendly to VBA code
than previous versions of Excel. The good news is that all of the settings that control how Excel responds
to VBAcode have been gathered in one location, the new Trust Center. When you are having problems
getting your VBA applications to run, you will need an excellent understanding of the settings in the
Trust Center to distinguish between bugs in your code and problems caused by Excel security features.
If you or your company needs to send workbooks to someone who may try to extract personal informa-
tion from them, the RemoveDocumentInformation method and the DocumentInspector object can
help you ensure that your workbooks don’t contain any such information.
506
Chapter 22: The Trust Center and Document Security
Brow si ng   OLA P  Dat a
Sou rce s  wi th   Exce l
The dominant database type in most organizations is the OLTP (On-line Transaction Processing)
database. Indeed, most of you are probably working with some form of an OLTP database as you
read this. The main characteristics of this type of database are: they typically contain many tables,
each table usually contains multiple relationships with other tables, and records within any given
table can be routinely added, deleted, or updated.
Although OLTP databases are effective in gathering and managing data, they typically don’t make
for effective data sources for reporting, for three main reasons:
Complexity: The large number of tables and relationships that can exist in an OLTP
database can leave you wondering exactly which tables to join and how the tables relate
to each other.
Volume: OLTP databases normally contain individual records. Lots of them. To create any
number of aggregate reports and views, you would have to run views that group, aggre-
gate, and sort records on the fly. The sheer volume of data in the database could very well
inundate you with painfully slow reporting.
Consistency: By its very nature, the records in a transactional database are ever-changing.
Building a reporting solution on top of this type of database will inevitably lead to incon-
sistent results from month to month, or even from day to day.
Some organizations avoid these woes by building their reporting solutions on top of OLAP (On-
Line Analytical Processing) databases. OLAP databases are data islands that are isolated from the
hustle and bustle of transactional databases. An OLAP database can help alleviate these problems
in the following ways:
Documents you may be interested
Documents you may be interested