2

Excel 2007より前は、vbaを使用してExcelでファイルを開くイベントをキャッチし、クライアントフォルダーの検索方法を知っている独自の開くダイアログを表示できるようにしました。Excel 2007では、これは機能しなくなりました。現在どのように機能するかについて、誰かが何か考えを持っていますか>

以前の基本的な前提は、コマンドバーボタンと関連イベントを使用してクラスを作成し、アプリを開いたときにそのcommandBarButtonを設定すると、それをキャッチすることでしたが、現在はキャッチしません。今、別の方法はありますか?

Public WithEvents cmdBold As Office.CommandBarButton Private Sub cmdBold_Click(ByVal Ctrl As Office.CommandBarButton、_ CancelDefault As Boolean)'このイベントに応答して実行するコードを挿入します。サブ終了

http://msdn.microsoft.com/en-us/library/aa189726(office.10).aspx

4

1 に答える 1

2

2007にはまだ対応していませんが、リボンUIの変更により、アプリケーションの動作が変わったと思います。

この長いMSDN記事の「開発者向けの考慮事項」セクションから:

レガシーソリューションとカスタマイズの互換性

多くの企業は、MicrosoftOfficeシステム上に構築されたカスタムアプリケーションとMicrosoftOfficeをサードパーティアプリケーションと統合するソリューションに依存しています。これらのソリューションの多くは、コマンドバーオブジェクトモデルを介してOfficeUIを変更します。2007 Officeリリースでは、このコードは引き続き機能します。ほとんどの場合、変更はありません。

Office 2003でツールバーに加えられた変更は、通常、2007リリースのリボンの[アドイン]タブに表示されます(図18を参照)。表示されるカスタマイズの種類は、アドインの元のデザインによって異なります。たとえば、カスタマイズによって以前のメニュー構造に項目が追加された場合、OfficeFluentUIはメニューコマンドグループを作成します。カスタムコードが組み込みのツールバーに項目を追加した場合、OfficeFluentUIはこれらのコントロールを含むツールバーコマンドグループを作成します。アドインによって追加されたツールバーは、[カスタムツールバー]グループに表示されます。

[アドイン]タブでのマウスクリックやその他のイベントにより、前のメニューやツールバーインターフェイスと同じ結果がトリガーされます。以前のUIでツールバーボタンがクリックされたときに実行されるアドインコードは、ユーザーが2007リリースの[アドイン]タブの[ツールバー]グループにある対応するボタンをクリックしたときにも実行されます。

メニューやツールバーを非表示にしたり、コントロールを削除したりするリクエストは無視されます。アドインがメニュー項目またはツールバーボタン([保存]や[印刷プレビュー]など)の動作を変更して組み込み機能を再利用しようとすると、Officeアプリケーションはコントロールを[アドイン]タブにコピーして変更し、元の機能を残します。リボンまたはMicrosoftOfficeボタンメニューのコントロールは変更されていません。

2007リリースでは、組み込みのコントロールをプログラムで削除または無効にすることができますが、以前のリリースのMicrosoft Officeのメニュー項目とツールバー項目を削除または並べ替えるアドインは、それらが読み込まれたときに効果がありません。

そのため、[アドイン]タブに追加の「開く」コントロールがあることに気付くかもしれません。

組み込みのコントロールの転用は、XMLを使用した場合にのみ可能であるようです。同じドキュメントの前の方から:

拡張性の機会

組み込みコントロールの転用。カスタムコードを組み込みコントロールのすべてのインスタンスに接続する1行のXMLを記述することにより、UIの任意の場所にある組み込みコントロールの機能を引き継ぐことができます。コントロールを変更してカスタムコードを実行し、オプションで組み込み機能を続行できます。

最後に、このさらに長いMSDNの記事では、XMLのカスタマイズがどのように機能するかについて説明しています。

于 2009-06-30T22:15:14.647 に答える