2

このプロジェクトには、Excel テンプレート (.xlt) とアドイン ファイル (.xla) があります。これらのファイルは、データビューの作成に使用されます。Dataview は一種のレポートにすぎません。xla には、データビューとその内容を作成、削除、管理するためのコントロールを作成するコードが含まれています。これらのコントロールは、データビューを作成するために VC++ で作成された OCX コントロールです。アドイン コードは個別に、テンプレート ファイルは個別に用意されています。

xlt と xla は、コードの改ざん防止を保証するためにデジタル署名されています。デジタル署名が登場するまで、すべてが正常に機能していました。データビューは、テンプレート ファイル (.xlt) を開き、ファイルを .xls 拡張子で保存することによって作成されます。これにより、デジタル署名された xlt および xla ファイルは変更されません。これを保存しようとすると、「署名されたプロジェクトを変更しようとしています。プロジェクトに署名するための正しいキーがありません ....」というメッセージが表示されます。

変更を保存して署名を破棄すると、生成された新しいファイルに対してのみ署名が失われます。xlt と xla の署名は同じままです。

また、Excel でセルを手動で編集して保存しようとしましたが、上記のメッセージは表示されません。OCX コントロールを使用してデータビューを作成し、それらを保存した後でのみ、上記のメッセージが表示されます。

4

2 に答える 2

0

私も同様の問題を抱えていました。マクロがワークシートをワークブックに挿入または削除する場合にのみ発生することがわかりました。各ワークシートにはそのワークシートに固有のマクロがあるため、ワークシートを追加または削除すると、マクロのソースコードが効果的に変更されます。

この問題について正しい方向を示してくれたTurboLawのKeithSurvellに感謝します。

http://help.turbolaw.com/entries/362246-warning-message-you-have-modified-a-signed-project-you-do-not-have-the-right-key-to-sign-this-プロジェクト

この問題を説明する信頼できるMicrosoftの情報源を見つけることができませんでした。

于 2013-01-07T23:43:26.960 に答える
0

何を守ろうとしているのですか?ワークブック/テンプレート全体に署名しましたか、それともコードのみに署名しましたか?

.xls は .xlt のコピーであるため、テンプレートの署名も xls にコピーされます。アイデア:

  1. テンプレート内のコードのみに署名してみてください。IDE で、ツール -> デジタル署名 (Excel 2002/2003) を使用します。
  2. テンプレートからすべてのコードを削除し、アドインに入れます
  3. それが難しすぎる場合は、テンプレートのコードのみを使用して 2 つ目のアドインを作成します。
于 2009-09-09T16:24:15.150 に答える