Ask Learn
Preview
Please sign in to use this experience.
Sign inThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
※ この記事は以下の Office サポート フォーラムに移行しました。 https://social.msdn.microsoft.com/Forums/ja-JP/bc946302-91ff-4fdd-b798-b7b7a06c5391/excel-?forum=officesupportteamja
こんにちは、Office 開発 サポート チームです。
今回は、前回の投稿の 3-1. ブックが開かれるプロセス で説明した動作に関連して、複数のブックを 1 つのプロセスで開くことのメリットについて記載します。
前回の投稿の通り、Excel 2013 以降のバージョンでは Excel 2010 までは新規プロセスを起動していたスタートメニューなどからの起動シナリオで、既存プロセスが使用されるように変更されました。
これは、Excel アプリケーションが MDI から SDI に変更された影響でもありますが、Excel 動作上のメリットもあります。以下に、主なメリットについて、いくつかご案内したいと思います。
目次 1. Excel 機能上のメリット 2. リソース上のメリット 3. プログラム上のメリット
Excel には、ブックをまたがって実行することができるいくつかの機能がありますが、これらの機能が動作するためには、ブックを開いているプロセスが同じであることが条件となります。Excel 2013 以降のバージョンで新しいブックを開いたときに既存プロセスが利用されるようになると、ユーザーは、現在のブックが開かれているプロセスをこれまでより意識することなく、これらの機能を利用することができます。
以下が、同一プロセス内のブック間で利用できる主な機能です。
関連情報)
タイトル : 外部参照 (リンク) の更新方法を制御する
アドレス : https://support.office.com/ja-JP/article/21E995B5-BAB1-4328-8AB3-DD357FE0E653
タイトル : 異なるインスタンスの Excel ブックに属性を貼り付けられない
アドレス : https://support.microsoft.com/ja-jp/kb/917637
タイトル : ワークシートまたはワークシートのデータを移動またはコピーする
アドレス : https://support.office.com/ja-JP/article/47207967-bbb2-4e95-9b5c-3c174aa69328
関連情報)
タイトル : 複数のワークシートを同時に表示する
アドレス : https://support.office.com/ja-JP/article/1deed3da-a297-4260-98aa-a7b2d90c81ab
Excel アプリケーションを起動すると、初期化処理で様々なモジュールや内部情報がメモリ上に展開されます。ブック毎に異なる Excel プロセスを起動すると、これらのアプリケーション レベルの情報が、プロセスごとにメモリに展開されます。一方、複数ブックを同じ Excel プロセスで開くと、アプリケーション レベルの情報などはブック毎に保持する必要はないため、結果的にリソースの節約になります。
昨今の PC では Excel アプリケーションが初期状態で保持するメモリ サイズが大きな支障となることは少ないですが、多くのユーザーがリモートデスクトップ接続して利用するような構成などでは、このような節約が役に立つこともあります。
プログラムから複数のブックを操作するとき、1 つのプロセスで開いておくと、Workbooks コレクションから全てのブックに容易にアクセスできます。
例えば、Excel のアドインでリボンに独自ボタンを登録し、このボタンをクリックすると現在開いているブック全てに対してある処理を行う、というシナリオを想定します。このシナリオで、ユーザーがそれぞれのブックを開くのにスタートメニューから Excel を起動したケースを想定して、Excel 2010 までの動作と Excel 2013 以降の動作を比較してみます。
Excel 2010
現在のプロセスで開かれているブックにのみ、処理が行われます。
今回想定するケースでは、ユーザーは全てのブックを別プロセスで開いているので、ユーザーはブック毎にボタンをクリックしなければなりません。
また、ユーザーは通常プロセスを意識しないので、ブックをエクスプローラからダブルクリックして開いたり、Excel メニューの [開く] でファイルを開く場合 (これらの場合は、既存プロセスでブックを開きます) は 1 度のクリックで全ブックに処理が行われる一方で、今回はブック毎にクリックが必要という動作から、アドインの使い方について混乱を招くことが懸念されます。
Excel 2013
全てのブックに対して処理が行われます。
今回想定するケースにおいても、ユーザーは 1 度のボタン クリックのみで処理を完了できます。
また、一般的なユーザー操作によるブックを開く方法のほとんどで既存プロセスが使われるため、アドインの動作に一貫性があります。
この例のように、特にアドインのようなユーザーが任意の操作手順で利用するようなプログラムにおいては、Excel 2013 以降の動作は、プログラムから扱いやすく幅広い処理を実現することができ、また、ユーザーにも利用しやすい動作であると言えます。
プログラム開発においては、以前のバージョンと動作を統一したいなどの理由で、あえて別プロセスでブックを開くような状況も生じるかと思いますが、Excel 2013 以降の変更によって既存プロセスを利用することで、これらのメリットがより享受しやすくなったという点もぜひ考慮頂ければ幸いです。
また、起動ショートカットの変更等でExcel 起動時に常に新規プロセスでブックを開くような対応を行う場合には、その環境で利用する Excel アドインやツールなどで、既定の動作を期待して、上記のような同一プロセスでのみ利用できる機能を内部的に利用している可能性にも十分にご留意ください。
今回の投稿は以上です。
本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。
Please sign in to use this experience.
Sign in