Microsoft Office 代码兼容性检查器用户指南
适用于: Office 2010
上一次修改主题: 2016-11-29
Microsoft Office 代码兼容性检查器可帮助您解决 Microsoft Visual Basic for Application (VBA) 宏和加载项中的兼容性问题。
使用 Microsoft Office 代码兼容性检查器可以检查您在以前版本的 Microsoft Office 中创建的 VBA 代码,并帮助您在与 64 位版本的 Microsoft Office 2010 兼容的代码中进行任何 Windows 应用程序编程接口 (API) 调用。
本文内容:
关于检查器
安装
检查 VBA 代码
检查 VSTO 代码
使用检查器
其他资源
关于检查器
Microsoft Office 代码兼容性检查器旨在帮助公司或小型企业更新 Visual Basic for Applications (VBA) 和 Visual Studio Tools for Office 代码以使其与 Office 2010 兼容。该检查器不会更正代码;它会检查代码,然后对引用对象模型中已发生更改或已弃用的项目的特定代码行添加注释。(在 VBA 代码中,此工具还会对用于实现 64 位兼容性的 Declare 语句添加注释。)然后,您可以根据注释修改代码,或使用注释中提供的链接在 Web 上查看与您的特定代码行相关的主题。
同样,如果您确定需要修改代码,则可以对其进行修改。
Office 代码兼容性检查器的主要功能包括:
它包括四个加载项,为 Excel 2010、PowerPoint 2010、Word 2010 和 Visual Studio 2008 中的每个应用程序分别加载其中一个加载项。
它可基于每个用户或每个文档来运行。对于 VBA,用户可从“开发人员”选项卡打开文档并运行此工具。对于 Visual Studio 项目,开发人员可从“工具”菜单运行此工具。
通过使用简单文本搜索和查找
parentObject.Property
组合,此工具可扫描当前文档或 Visual Studio 解决方案中的项目,并且可以扫描用于实现 64 位兼容性的 Declare 语句(在 VBA 中)。此工具可在代码中发现其他潜在问题的位置添加注释。
它在完成检查后可显示所发现内容的摘要和详细报告。
不能使用此工具检查 Microsoft Outlook 或 Microsoft Access 中的代码。但可以使用它检查 Excel、PowerPoint 和 Word 代码与 Outlook 对象模型的交互情况。
安装
若要安装 Office 代码兼容性检查器,请执行以下步骤:
从 Office 2010 工具:兼容性检查器(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=171093\&clcid=0x804)(该链接可能指向英文页面) 下载 OCCI 的 Update 1 版本,并将其保存到您的桌面或其他某个便于访问的位置,然后浏览到该文件并打开它以开始安装。
可以选择只安装 Visual Studio 加载项。
可以选择只安装 Office 加载项。
或者,可以选择同时安装这二者。
按照提示操作,然后选择“完成”以完成安装。
显示“开发人员”选项卡
对计划在其中使用此工具的每个 Office 应用程序执行以下操作:
打开 Excel 2010、PowerPoint 2010 或 Word 2010(如果尚未打开该应用程序)。
在“文件”选项卡上,选择“选项”。
选择“自定义功能区”。
在对话框左侧的“从下列位置选择命令”下,选择“常用命令”。
在对话框右侧的“自定义功能区”下,选择“主选项卡”,然后选中“开发人员”复选框。
选择“确定”。
启用 VBA 工程访问
对计划在其中使用此工具的每个 Office 应用程序执行以下操作:
打开 Excel 2010、PowerPoint 2010 或 Word 2010(如果尚未打开该应用程序)。
在“文件”选项卡上,选择“选项”。
选择“信任中心”。
选择“信任中心设置”。
在“宏设置”页上,选择“信任对 VBA 工程对象模型的访问”。
检查 VBA 代码
若要检查文档的兼容性,请执行以下步骤:
在 Excel 2010、PowerPoint 2010 或 Word 2010 中打开该文档。
在“开发人员”选项卡上,选择“检查 VBA 代码”。
图 1.“开发人员”选项卡上的代码兼容性检查器选项
在“检查 VBA 工程”对话框中,根据需要选中或清除相应选项,然后选择“检查”。
图 2.“检查 VBA 工程”对话框
选择“检查 Visual Basic for Application 工程”以便检查 VBA 工程的对象模型中是否存在已发生更改或已删除的项目。
如果只在 Office 2010 上运行您的项目,或您的项目可能在正运行 64 位 Office 2010 的系统上运行,请选择“检查 Declare 语句”。
选择“添加注释”以在代码中此工具发现潜在兼容性问题的位置添加注释。检查器添加的注释类似于以下示例。
'<VBA_INSPECTOR> ' <DEPRECATION> ' <MESSAGE>Potentially contains ... </MESSAGE> ' <ITEM>AnswerWizard.ResetFileList</ITEM> ' <URL>https://go.microsoft.com/fwlink/?linkid=171730&clcid=0x804
选择“详细报告”以在检查过程的末尾创建一个报告。该报告是一个类似于以下示例的文本文件。
SUMMARY: ======== Document scanned: c:\TestFile.xls Date Scanned: Thursday, November 12, 2009 Total lines scanned: 101 Total items found: 1 Deprecated items: 0 Changed items: 1 Redesigned items: 0 Declare statements: 0 DETAILS: ======== MODULE: Module1 FUNCTION: Macro1 LINE: 19 TYPE: CHANGE ITEM: Workbook.VBProject URL: https://go.microsoft.com/fwlink/?linkid=170116&clcid=0x804: For Each comp In ActiveWorkbook.VBProject.VBComponents
检查器完成其扫描后,会显示类似以下内容的摘要报告。
图 2a. 代码兼容性检查器摘要
扫描的总行数 – 文档中扫描的 VBA 代码总行数。
找到的总项目数 – 检查器在代码中发现的有问题项目的总数,这些项目包括要更新的 Declare 语句,更改的项目,弃用的项目以及受设计更改影响的项目。
弃用的项目 – 代码中已从对象模型中删除的项目,或对象模型不再支持的项目。如果您的代码依赖于弃用的项目,则必须重写代码的这一部分。
更改的项目 – 代码中使用其语法已发生更改的命令的项目。如果您的代码使用过时的语法,则必须更新该代码。
重新设计的项目 – 代码中其语法相同且仍存在的项目,但这些项目的更新设计可能导致代码出现意外结果。例如,设置特定文本框的格式可能因新文本服务而发生更改,因此,您的代码可能会创建一个文本框,但框中文本的布局可能不同于以前的版本。
Declare 语句 – 在 VBA 代码中检测到的、然后为实现 64 位兼容性而更新的(通过添加 PTRSAFE 关键字)Windows API 语句的总数。
检查 Visual Studio 代码
若要检查文档的兼容性,请执行以下步骤:
打开要在 Visual Studio Tools for Office 中检查的解决方案。
在“工具”菜单中选择“检查 VSTO 代码”。
图 3.VSTO“工具”菜单
在“检查 VSTO 项目”对话框中,根据需要选中或清除相应选项,然后选择“检查”。
图 4.“检查 VSTO 项目”对话框
选择“检查 Visual Studio Tools for Office 源(VB.NET 和 C#)”,以检查 Visual Studio Tools for Office 项目的对象模型中是否存在已发生更改或删除的项目。
选择“添加注释”以在代码中此工具发现潜在兼容性问题的位置添加注释。检查器添加的注释类似于以下示例。
//<VSTO_INSPECTOR> // <DEPRECATION> // <MESSAGE>Potentially contains removed items...</MESSAGE> // <ITEM>[mso]AnswerWizard.ResetFileList</ITEM> // <URL>https://go.microsoft.com/fwlink/?linkid=171730&clcid=0x804
选择“详细报告”以在检查过程的末尾创建一个报告。该报告是一个类似于以下示例的文本文件。
SUMMARY: ======== Solution scanned: ExcelAddIn1 Date scanned: Thursday, November 12, 2009 Total lines scanned: 43 Total items found: 3 Deprecated items: 3 Changed items: 0 Redesigned items: 0 DETAILS: ======== MODULE: ThisAddIn.cs FUNCTION: ThisAddIn_Startup LINE: 17 TYPE: DEPRECATION APP: mso ITEM: AnswerWizard URL: https://go.microsoft.com/fwlink/?linkid=171730&clcid=0x804: xlApp.AnswerWizard.ResetFileList(); MODULE: ThisAddIn.cs FUNCTION: ThisAddIn_Startup LINE: 19 TYPE: DEPRECATION APP: xls ITEM: SmartTagRecognizers URL: https://go.microsoft.com/fwlink/?linkid=170614&clcid=0x804: xlApp.SmartTagRecognizers.Recognize = true; MODULE: ThisAddIn.cs FUNCTION: ThisAddIn_Startup LINE: 22 TYPE: DEPRECATION APP: xls ITEM: SmartTags URL: https://go.microsoft.com/fwlink/?linkid=170617&clcid=0x804: MessageBox.Show(r.SmartTags.Count.ToString());
选择“备份”以在检查代码之前备份您的项目文件。
检查器完成其扫描后,会显示类似以下内容的摘要报告。
图 5. 代码兼容性检查器摘要
扫描的总行数 – 文档中扫描的 Visual Basic .NET 或 C# 代码行的总数。
找到的总项目数 – 检查器在代码中发现的有问题项目的总数,这些项目包括更改的项目,弃用的项目以及受设计更改影响的项目。
弃用的项目 – 代码中已从对象模型中删除的项目,或对象模型不再支持的项目。如果您的代码依赖于弃用的项目,则必须重写代码的这一部分。
更改的项目 – 代码中使用其语法已发生更改的命令的项目。如果您的代码使用过时的语法,则必须更新该代码。
重新设计的项目 – 代码中其语法相同且仍存在的项目,但这些项目的更新设计可能导致代码出现意外结果。例如,设置特定文本框的格式可能因新文本服务而发生更改,因此,您的代码可能会创建一个文本框,但框中文本的布局可能不同于以前的版本。
Declare 语句 – 在 VBA 代码中检测到的、然后为实现 64 位兼容性而更新的(通过添加 PTRSAFE 关键字)Windows API 语句的总数。
使用检查器
如果检查器在您的代码中找到“更改的”、“弃用的”或“重新设计的”项目,那么您必须调试代码并解决所有问题。建议对代码执行完整测试过程,以便检查每个函数。在调试代码时,应查看中断代码的代码行上方的 Office 代码兼容性检查器注释。这些注释可帮助您确定该特定代码行可能存在的问题。如果您不了解该问题,可将注释中的 URL 粘贴到浏览器中以获取更多信息。
删除 VBA 中的注释
若要在完成该过程并验证代码的 Office 2010 兼容性后从代码中删除注释,请选择 Office 2010 应用程序中“开发人员”选项卡上的“删除注释”。
检查器会删除它放在 VBA 工程中的所有注释,然后通知您删除的项目数。
图 6. 指定删除的项目数的消息
删除 Visual Studio 中的注释
若要在完成该过程并验证代码的 Office 2010 兼容性后从代码中删除注释,请选择 Visual Studio 中“工具”菜单上的“删除 VSTO 检查器注释”。
检查器会删除它放在 Visual Studio Tools for Office 项目中的所有注释,然后通知您删除的项目数。
图 6a. 指定删除的项目数的消息
其他资源
有关详细信息,请参阅以下资源: