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

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

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 18 Gen 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');

Più risposte (0)

Categorie

Scopri di più su COM オートメーション サーバーとしての MATLAB の呼び出し in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!