Microsoft Office Code Compatibility Inspector ユーザー ガイド

 

適用先: Office 2010

トピックの最終更新日: 2016-11-29

Microsoft Office Code Compatibility Inspector を使用すると、Microsoft Visual Basic for Application (VBA) マクロとアドインの互換性の問題を容易にトラブルシューティングできます。

Microsoft Office Code Compatibility Inspector を使用して、以前のバージョンの Microsoft Office で作成した VBA コードを調査し、64 ビット版の Microsoft Office 2010 と互換性があるコード内で Windows アプリケーション プログラミング インターフェイス (API) を呼び出します。

この記事の内容

  • Inspector について

  • インストール

  • VBA コードの検査

  • VSTO コードの検査

  • Inspector の使用

  • 参考資料

Inspector について

Microsoft Office Code Compatibility Inspector は、大企業や中小企業が Visual Basic for Applications (VBA) および Visual Studio Tools for Office のコードを更新し、Office 2010 との互換性を維持できるようにするためのツールです。Inspector はコードを修正するのではなく、コードを検査します。その後、変更されたか非推奨になったオブジェクト モデルのアイテムを参照している特定のコード行にコメントを付けます (VBA コードでは、64 ビット互換性のために Declare ステートメントにもコメントを付けます)。このコメントに基づいてコードを変更することや、コメントに表示されるリンクを使用して、特定のコード行に関するトピックを Web で参照できます。

繰り返しますが、コードの変更が必要であると判断した場合に、そのコードを変更するのはユーザーの作業です。

Office Code Compatibility Inspector の主要な機能は以下のとおりです。

  • Excel 2013、PowerPoint 2013、Word 2010、および Visual Studio 2008 に読み込まれる、アプリケーションごとに 1 つずつの 4 つのアドインで構成されます。

  • ユーザー単位またはドキュメント単位で実行されます。VBA では、ユーザーがドキュメントを開いて [開発] タブからツールを実行します。Visual Studio プロジェクトでは、開発者が [ツール] メニューからツールを実行します。

  • 単純なテキスト検索を使用して、現在のドキュメントや Visual Studio ソリューションのプロジェクトをスキャンし、parentObject.Property の組み合わせを探します。また、Declare ステートメントをスキャンして 64 ビット互換性を検査します (VBA の場合)。

  • 他の潜在的な問題が検出されたコード内の場所にコメントを追加します。

  • 検査の完了後に、検出結果の概要と詳細なレポートを表示します。

このツールでは、Microsoft Outlook または Microsoft Access のコードは検査できません。ただし、Outlook オブジェクト モデルとやり取りする Excel、PowerPoint、および Word のコードは検査できます。

インストール

Office Code Compatibility Inspector をインストールするには、次の手順を実行します。

  1. Update 1 バージョンの OCCI を「Office Code Compatibility Inspector (OCCI): Office Compatibility (英語)」(https://go.microsoft.com/fwlink/?linkid=171093\&clcid=0x411) (英語) からダウンロードし、デスクトップまたは適切な場所に保存したら、そのファイルを参照して開き、インストールを開始します。

    • Visual Studio アドインのみのインストールを選択できます。

    • Office アドインのみのインストールを選択できます。

    • または、両方のインストールを選択できます。

  2. 画面に表示される手順に従って操作を行い、[完了] を選択してインストールを完了します。

[開発] タブを表示する

ツールを使用する Office アプリケーションごとに、次の手順を実行します。

  1. まだ開いていない場合は、Excel 2013、PowerPoint 2013、または Word 2010 を開きます。

  2. [ファイル] タブの [オプション] を選択します。

  3. [リボンのユーザー設定] を選択します。

  4. ダイアログ ボックスの左側にある [コマンドの選択] で、[基本的なコマンド] を選択します。

  5. ダイアログ ボックスの横にある [リボンのユーザー設定] で、[メイン タブ] を選択し、[開発] チェック ボックスをオンにします。

  6. [OK] を選択します。

VBA プロジェクトへのアクセスを有効にする

ツールを使用する Office アプリケーションごとに、次の手順を実行します。

  1. まだ開いていない場合は、Excel 2013、PowerPoint 2013、または Word 2010 を開きます。

  2. [ファイル] タブの [オプション] を選択します。

  3. [セキュリティ センター] を選択します。

  4. [セキュリティ センターの設定] を選択します。

  5. [マクロの設定] タブで、[VBA プロジェクト オブジェクト モデルへのアクセスを信頼する] を選択します。

VBA コードの検査

ドキュメントで互換性を検査するには、次の手順を実行します。

  1. Excel 2013、PowerPoint 2013、または Word 2010 でドキュメントを開きます。

  2. [開発] タブで、[Inspect VBA Code] を選択します。

    図 1. [開発] タブの Code Compatibility Inspector のオプション

    [開発] タブの検査オプション

  3. [Inspect VBA Project] ダイアログ ボックスで、必要に応じてオプションをオンまたはオフにし、[Inspect] を選択します。

    図 2. [Inspect VBA Project] ダイアログ ボックス

    [Inspect VBA Project] ダイアログ ボックス

    1. VBA プロジェクトで、変更されたか削除されたオブジェクト モデルのアイテムがあるかどうかを検査するには、[Inspect Visual Basic for Application Projects] を選択します。

    2. プロジェクトを Office 2010 でのみ実行する場合、または 64 ビット版の Office 2010 を実行しているシステムで実行する可能性がある場合は、[Inspect Declare statements] を選択します。

    3. ツールで潜在的な互換性の問題が検出されたコード内にコメントを追加するには、[Add comments] を選択します。Inspector によって追加されるコメントは、次の例のように表示されます。

      '<VBA_INSPECTOR>
      '      <DEPRECATION>
      '        <MESSAGE>Potentially contains ... </MESSAGE>
      '        <ITEM>AnswerWizard.ResetFileList</ITEM>
      '        <URL>https://go.microsoft.com/fwlink/?linkid=171730&clcid=0x411
      
    4. 検査処理の最後にレポートを作成するには、[Detailed Report] を選択します。レポートはテキスト ファイルで、次の例のように表示されます。

      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=0x411:              For Each comp In
      ActiveWorkbook.VBProject.VBComponents
      
  4. Inspector によるスキャンが完了した後で、次のような概要レポートが表示されます。

    図 2a. Code Compatibility Inspector の概要レポート

    コード互換性検査の概要

    • [Total lines scanned] – ドキュメント内でスキャンされた VBA コード行の合計数です。

    • [Total items found] – コード内で検出された問題のあるアイテムの合計数です。これには、更新する Declare ステートメント、変更されたアイテム、非推奨のアイテム、および設計変更の影響を受けるアイテムが含まれます。

    • [Deprecated items] – オブジェクト モデルから削除されたか、サポートされなくなっているコード内のアイテムです。コードが非推奨のアイテムに依存している場合は、その部分のコードを書き直す必要があります。

    • [Changed items] – 構文が変更されたコマンドを使用しているコード内のアイテムです。コードで古い構文を使用している場合は、コードを更新する必要があります。

    • [Redesigned items] – 構文は変わらずに今も存在しているものの、設計が更新されたためにコードに対して予期しない結果をもたらす可能性があるコード内のアイテムです。たとえば、新しいテキスト サービスのために特定のテキスト ボックスの書式設定が変更され、その結果、コードでテキスト ボックスを作成しても、ボックス内のテキストのレイアウトが以前のバージョンと変わってしまうことがあります。

    • [Declare statements] – VBA コード内で検出され、PTRSAFE キーワードを追加して 64 ビット互換性のために更新された Windows API ステートメントの合計数です。

Visual Studio コードの検査

ドキュメントで互換性を検査するには、次の手順を実行します。

  1. 検査するソリューションを Visual Studio Tools for Office で開きます。

  2. [ツール] メニューの [Inspect VSTO Code] を選択します。

    図 3. VSTO の [ツール] メニュー

    VSTO [Tool] メニュー

  3. [Inspect VSTO Project] ダイアログ ボックスで、必要に応じてオプションをオンまたはオフにし、[Inspect] を選択します。

    図 4. [Inspect VSTO Project] ダイアログ ボックス

    [Inspect VSTO Project] ダイアログ ボックス

    1. Visual Studio Tools for Office プロジェクトで、変更されたか削除されたオブジェクト モデルのアイテムがあるかどうかを検査するには、[Inspect Visual Studio Tools for Office Source (VB.NET and C#)] を選択します。

    2. ツールで潜在的な互換性の問題が検出されたコード内にコメントを追加するには、[Add comments] を選択します。Inspector によって追加されるコメントは、次の例のように表示されます。

      //<VSTO_INSPECTOR>
      //  <DEPRECATION>
      //      <MESSAGE>Potentially contains removed items...</MESSAGE>
      //      <ITEM>[mso]AnswerWizard.ResetFileList</ITEM>
      //      <URL>https://go.microsoft.com/fwlink/?linkid=171730&clcid=0x411
      
    3. 検査処理の最後にレポートを作成するには、[Detailed Report] を選択します。レポートはテキスト ファイルで、次の例のように表示されます。

      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=0x411:        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=0x411:        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=0x411:        MessageBox.Show(r.SmartTags.Count.ToString());
      
    4. コードを検査する前にプロジェクト ファイルをバックアップするには、[Backup] を選択します。

  4. Inspector によるスキャンが完了した後で、次のような概要レポートが表示されます。

    図 5. Code Compatibility Inspector の概要レポート

    コード互換性検査の概要

    • [Total lines scanned] – ドキュメント内でスキャンされた Visual Basic .NET または C# コード行の合計数です。

    • [Total items found] – コード内で検出された問題のあるアイテムの合計数です。これには、変更されたアイテム、非推奨のアイテム、および設計変更の影響を受けるアイテムが含まれます。

    • [Deprecated items] – オブジェクト モデルから削除されたか、サポートされなくなっているコード内のアイテムです。コードが非推奨のアイテムに依存している場合は、その部分のコードを書き直す必要があります。

    • [Changed items] – 構文が変更されたコマンドを使用しているコード内のアイテムです。コードで古い構文を使用している場合は、コードを更新する必要があります。

    • [Redesigned items] – 構文は変わらずに今も存在しているものの、設計が更新されたためにコードに対して予期しない結果をもたらす可能性があるコード内のアイテムです。たとえば、新しいテキスト サービスのために特定のテキスト ボックスの書式設定が変更され、その結果、コードでテキスト ボックスを作成しても、ボックス内のテキストのレイアウトが以前のバージョンと変わってしまうことがあります。

    • [Declare statements] – VBA コード内で検出され、PTRSAFE キーワードを追加して 64 ビット互換性のために更新された Windows API ステートメントの合計数です。

Inspector の使用

Inspector でコード内に [Changed]、[Deprecated]、または [Redesigned] アイテムが検出された場合は、コードをデバッグして問題を解決する必要があります。コードに対して完全なテスト パスを実行し、各関数を検査することをお勧めします。コードをデバッグするときに、コードを分断している行の上の Office Code Compatibility Inspector コメントを確認してください。これらのコメントは、その特定のコード行の根底にある問題を判断するのに役立ちます。問題が明確にわからない場合は、コメント内の URL をブラウザーに貼り付けて、詳細な情報を取得します。

VBA のコメントを削除する

処理を完了し、コードで Office 2010 との互換性を確認した後で、コードからコメントを削除するには、Office 2010 アプリケーションの [開発] タブで [Remove Comments] を選択します。

VBA プロジェクトに追加されたすべてのコメントが削除され、削除されたコメントの数が通知されます。

図 6. 削除されたコメントの数を示すメッセージ

削除される項目の数を指定するメッセージ

Visual Studio のコメントを削除する

処理を完了し、コードで Office 2010 との互換性を確認した後で、コードからコメントを削除するには、Visual Studio の [ツール] メニューの [Remove VSTO Inspector Comments] を選択します。

Visual Studio Tools for Office プロジェクトに追加されたすべてのコメントが削除され、削除されたコメントの数が通知されます。

図 6a. 削除されたコメントの数を示すメッセージ

削除される項目の数を指定するメッセージ