IDEXXユーティリティーでExcelを別プロセスで起動するために

先日、IDEXX検査機器のレシートプリント出力ユーティリティーを紹介しました。
このユーティリティーはExcelで動いているのですが、同一のPCで他のエクセルワークシートを使用する場合は、無用のトラブルを避けるため別プロセスで起動しておいたほうが無難です。

当院では、同時に3つのエクセルシートを動かしているので、それぞれを別プロセスで起動しています。
こうすることでIDEXXユーティリティーのタイマー割り込み時の処理の一時停止が、他のエクセルシートの動作に影響しなくなります。

この件についてのMicrosoftの技術情報から参考記事です

  Excel でブックを開くプロセスを統合するメリット
  Excel の単一ドキュメント インターフェイスのプログラミング

私の方法・別プロセスで開くショートカットを作る

まず、通常の方法でショートカットを作ります


ショートカットのプロパティを開きます


リンク先にはブックの存在している場所とブック名が表示されていますが、これを編集します。このファイル名の前に Excel本体のアドレスと /x オプションを付けるだけです。
通常にOfficeがインストールされている場合は下記のように書き換えます。
赤字の部分を元々あったファイル名の前に追加します。

"C:\Program Files\Microsoft Office\Office15\EXCEL.EXE" /x C:\Users\AZA\Desktop\TEST.xlsm


適用ボタンを押すと、今までのショートカットとは違うアイコンになりました。



 

別プロセスでの動作を確認してみた

まず、通常の起動。
TEST.xlsを開いておいて、続けてTEST2.xlsを開くと


2つのエクセルが別々に開いているように見えますが、
タスクマネージャーで確認すると


エクセルのプロセスは1つしかありません。
ここで「ウィンドウの整列」を実施すると、後から開いたTEST2.xlsまでが整列させられてしまいます。



それでは、先程作った別プロセスのショートカットで2つのシートを開いてみます。


見た目は同じですが、タスクマネージャーで確認すると


2つのエクセルが確認できます。
ウィンドウの整列を実施すると


TEST2.xlsには影響しませんでした。

じつは、このウィンドウの操作でずっと悩んでいたのです。
別プロセスで起動しておいたほうが、マクロを実施する場合、おかしな動作を避けられると思います。



0 件のコメント :

コメントを投稿