別プロセスでエクセルを起動する ~マクロに邪魔されない独立したブックを起動~

こんにちはRcatです。
今回は大したネタではないですが、いろんなところで使い回せそうなので、別プロセスでエクセルを起動する方法について紹介します。



はじめに

利用規約

情報や作品の活用時は事前に利用規約をご確認ください。

コメントについて

利用規約のガイドラインを確認の上コメントしてください


別プロセスって何?

エクセルの開き方について

まず最初に別プロセスって何というところからですが、簡単に言えば根っこのところを増やす感じです。

例えばExcelを2つ開いたとしましょう。2つのウィンドウが開いていると思いますが、実はこれ裏で繋がってます。

もう少し詳細に説明すると、上記は2つのエクセルが立ち上がっているように見えるが、厳密には1個のExcelの上で2つのブックが開いている状態となります。

この状態のメリットや、デメリットですが、以下のようなことがあげられます。

  • メリット

    • コピペする際に詳細な書式までコピーができる
      ※別プロセスだと一部の貼り付け方法でエラーが出るようになります。

  • デメリット

    • 同名のブックが開けない。
      別プロセスなら同じ名前でも開けます。"申し訳ございません"じゃなくて別プロセスで開けよって感じですね!

    • マクロが1個しか動かない。

    • マクロがフリーズすると全部フリーズする

    • マクロが絶対参照ではない場合、影響を与える。
      ただの"range"や"cells"だとavtiveworkbookなので触った瞬間に対象が切り替わります。恐ろしい。

    • Excelが落ちるとまとめて全部落ちる
      特に複雑なマクロであるあるですね。

少なくとも私にとってはデメリットの方が多いです。
別プロセスにするとこれらが全て逆転します。

別プロセスかどうか確認するには?

確認する必要はありません。というのも特定の方法で起動しない限り、絶対に別プロセスでは起動しないからです。
ちなみにプロセスが立ち上がった時だけ、エクセルの起動画面みたいなのが出ます。

多分パソコンを立ち上げた時、最初の1回はこれ出るんじゃないでしょうか?しかし、他のエクセルを落とせずに追加のブックを開くとこの表示はなく、他の開いてたブックが最前面に出るような挙動をするはずです。
それは既存のプロセスを使って開いているからです。

これが出た時はプロセスが立ち上がっている

別プロセスで起動するには

結論から言うと"/X"引数を指定して起動します。

バッチファイルを使って別プロセスで起動する

メモ帳を開き、以下のように入力します。

start "" EXCEL.EXE /X "%1"

これを好きなところに保存して、拡張子をBATにして保存します。
私の場合はこんな感じにしました。アイコンが歯車になればOK。

あとはこれをダブルクリックすれば一瞬黒い画面が表示された後、エクセルが別プロセスで起動します。
あるいは、開きたいエクセルのブックをこの上にドラッグ&ドロップでもOKです。
おすすめの使い方はSendToに入れて、送るに入れておくと簡単にいつでもアクセスできます。

実はショートカットでもいい

ちょっと上で何言ってるのか意味わかんないという方はこういう方法もあります。

まず最初にExcel本体のショートカットを見つけます。
大抵の場合、スタートボタンとかにExcelがいるのではないでしょうか?
右クリックからファイルの場所を開くを押しましょう。

エクスプローラーが開くとここにショートカットが入っています。
このショートカットを好きなところにコピーしておきます。

持ってきたショートカットを右クリックしてプロパティを確認。
リンク先の一番後ろに/Xをつけます。たったこれだけ。
今後はこのショートカットをダブルクリックした場合に限り、別プロセスで開くようになります。


まとめ

さて、簡単でしたが、今回は以上になります。
個人で使う分にはあまり利用することのない機能ですが、仕事で使ったりマクロを使ったりすると途端に便利になってきます。

マクロは使わなくても、同じ名前のファイルが開けなくて困ったことはあるのではないでしょうか?
そういう時は諦めて名前を変えたりするのが普通だと思いますが、別プロセスで起動してしまえば、名前を変えなくてもそのまま開けます。

マクロを使う場合で特に時間がかかる場合、パソコンが使えない、しばらくエクセルで作業できません。という状態は効率が悪すぎます。
こういう時もマクロは別プロセスで起動しておき、作業環境とは隔離してしまうのが賢い選択です。

ちなみにPowerPointにこの機能はありませんでした。パワポもマクロ使うので固まられると困るのに別プロセスがどんなに頑張っても増えません!。非常に困るのでパワポも対応してほしいです。

以上、エクセルと別プロセスの話でした。

それではまたお会いしましょう。


いいなと思ったら応援しよう!

Rcat999 情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。