ACTXSERVER​関数を実行すると新し​いExcelインスタ​ンスが作成されるのは​なぜですか?

7 vues (au cours des 30 derniers jours)
MathWorks Support Team
MathWorks Support Team le 18 Jan 2010
以下のコマンドを実行すると、新しい Excel のインスタンスが開かれます。
a = actxserver('Excel.Application');
既に開かれている Excel のインスタンスを取得する方法を教えてください。

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 18 Jan 2010
MATLAB 7.4(R2007a) 以降では、以下のように axtxGetRunningServer を使用することで、Excel アプリケーションのようなオートメーションサーバの既存インスタンスを取得することができます。
h = actxGetRunningServer('Excel.Application');
このコマンドにより、 実行中のExcel アプリケーションのインスタンスに対するリファレンスを取得し、変数 h としてサーバオブジェクトのデフォルトインターフェースのハンドルが出力されます。より詳細な情報を確認するには、以下のコマンドを実行してください。
doc actxGetRunningServer
MATLAB 7.3(R2006b)以前のバージョンでは、ACTXSERVER関数には Excel の既存インスタンスを使用する機能はありません。
代替案としては、Excel をオートメーションサーバとして起動させます。そうすることにより、ACTXSERVER 関数は既に開いている Excel のインスタンスを使用することが可能です。
Excel をオートメーションサーバとして起動するには、Windows コマンドプロンプトより以下のコマンドを実行します。
excel /regserver
excel -automation
これらのコマンドを実行する前に、Microsoft Excel の実行形式 excel.exe がシステムパス上にあることを確認してください。
オートメーションサーバとして Excel を起動した後は、ACTXSERVER コマンドで既存の Excel インスタンスを使用することができます。
a = actxserver('Excel.Application');

Plus de réponses (0)

Catégories

En savoir plus sur COM オートメーション サーバーとしての MATLAB の呼び出し dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!