コードを介して(呼び出しActiveWorkbook.CheckCompatibility = False
の前に、またはイベントをトラップすることによってグローバルにを使用して)Excelの「互換性チェッカー」をプログラムで無効にすることは可能ですが、「機能」が検出されました。これをテストする簡単な方法:SaveAs
ActiveWorkbook.BeforeSave
- 新しいExcel2010ブックを作成します。
- A1:A2を選択し、条件付き書式を選択します(何でも構いません)。
- A2:A3を選択し、別の条件付き書式を選択します。A2には、2つの異なる条件付きフォーマットを適用する必要があります。
VBAエディターを開き、次のコードをワークブックモジュールに追加します。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ActiveWorkbook.CheckCompatibility = False End Sub
コードにブレークポイントを設定します。
- スプレッドシートに戻り、[ファイル]>[名前を付けて保存]を選択します。コードはすぐにブレークポイントにジャンプします。コードをステップスルーする
CheckCompatibility
と、[イミディエイト]ペインで設定を確認できます。 - コードが完成したら、Excel 97-2003ファイルタイプを選択し、[保存]をクリックします。
- 互換性チェッカーは引き続き表示されます。
これは、エラーが「マイナーな互換性の問題」(http://msdn.microsoft.com/en-us/library/office/gg132972(v=office.14).aspxを参照)ではなく、何もないためだと思います。私はこのエラーを抑制しているようで、それを無効にするためのレジストリエントリを作成することすらしていません。「重大な」非互換性があってもチェッカーを抑制する方法を知っている人はいますか?
ETA:不必要な詳細に立ち入ることなく、多数のベンダーテンプレートを開き、データを入力し、膨大な(そして常にわずかに異なる)一連の品質管理ルールに従って処理するプロセスを自動化しようとしています。 .xlsファイルとして保存されます(ベンダーの要件に従って)。これは、無人システムで2時間ごとに数十の異なるテンプレートワークブックで発生するため、ワークブックごとに互換性要件のチェックを外すことはできません。つまり、できると思いますが、それが私のフルタイムの仕事になるでしょう。人間の介入なしに、初めてブックの実行時に互換性チェックをオフにできるようにする必要があります。