今日を乗り切るExcel研究所

Excel に働かされていませんか

応答なし中でも Excel を使いたい

今回は、Excel が応答なしになって作業ができない状態でも、Excelを使えるようにする方法を紹介します。

f:id:shego:20191101063936p:plain

仕事もフリーズ

Excel が固まってなにも反応せず、応答なしになってしまうことがよくあります。

青いわっかカーソルがクルクル回りっぱなしのまま、Excel 画面が白っぽくなると、フリーズしてもうなにも操作できません。 あとは強制終了するのみです。

Excel ヘビーユーザーのみなさんなら、しょっちゅう経験していることかと思います。

ただ、Excel が応答なしになったからといって、必ずしも異常があってフリーズしたとは限りません。

単に処理に時間がかかっているだけかもしれません。 たとえば、非常に大きなデータを読み込んだり、大量のセルを処理するマクロを走らせたときも応答なし状態なります。

その場合処理の終了を待つだけです。

待つのはいいとしても、問題は、いったんこうなると Excel で何も操作できなくなることです。 同時に開いていた別の Excel ウィンドウも道連れにフリーズされてしまい、見ることさえできません。 処理待ち中に別の作業を進めたくても Excel が使えないことには仕事にならずイライラが募ります。 青いクルクルを見つめるのも恨めしく、もう家に帰りたくなります。

応答なしでもExcelを使うには

応答なし状態になった Excel は放っておくことにして、もう一つ別に Excel を起動すれば、待っている間にも別の作業を続けることができます。 これを本記事では「別立て Excel 」と呼ぶことにしましょう。

別立て Excel を起動する手順は以下のようになります。

【手順例】

  1. Excel ファイルを一つ開きます
    • これが応答なし Excel のつもりです
      いつでも応答なしにできるファイルがあるのならそれで試してみてもいいです
    • Windows のタスクバーに Excel のアイコンが表示されている状態です
  2. タスクバーの Excel アイコンを「右クリック」し、リストメニューを開きます
    • このリストの正式名は「ジャンプリスト」と言うようです
  3. Altキーを押しながら「Excel」を左クリックし、なおもAltキーを離さずにしばらく待ちます
    • すぐにAltキーを離すと失敗します f:id:shego:20191101230756p:plain
  4. すると「新しく別の Excel を起動しますか?」というダイアログが表示されるので「はい」を押します
    f:id:shego:20191026081401p:plain
  5. 新たにExcelが起動します

この Excel が「別立て Excel」です。

最初の Excel が応答なし状態のままでも、別立て Excel は普通に使用することができます。

スタートメニューからでも同様にAltキーで別立て Excel になります。 ほかにもAltキーが有効なメニューやアイコンなどの起動場所があるかもしれませんが、すべての起動方法で使えるわけではないようです。

また、どうしてもマウスを使いたくない、キーボード操作だけで素早く実行したいのだ、という人には「検索ボックス」などからコマンドで実行する方法もあります。

【手順例】検索ボックスからのExcel別起動

  1. Windows タスクバーの検索ボックスを入力状態にします
    • ショートカット: Win+S
  2. 検索ボックスに以下のコマンドを入力し、Enterキーを押します
    • コマンド入力: excel.exe /x
      f:id:shego:20191026082735p:plain
  3. 新たに Excel が起動します

単なるexcelではダメで、拡張子の.exeは必須です。 /xが別立て起動のオプションです。

コマンドで起動した場合、確認のダイアログの表示もなくすぐに起動できます。

別立て Excel からなら、たとえ巻き添えで応答なしとなった Excel ファイルでも開くことができます。 その場合は読み取り専用になりますが、何もできないよりかはだいぶマシです。

別立て Excel とは

通常、Excel で複数のワークブックを開くと、それぞれが別ウィンドウに表示されるので、いくつもの Excel が実行されているように見えますが、実際には一つのExcelでまかなっています。 Excel を何回起動しても、すでに実行している Excel が別ウィンドウで開くだけで、複数の Excel は実行されない、つまり2重起動(多重起動)されないようになっているのです。

これに対し別立て Excel は、あえて別のExcelを実行させる、つまり2重起動している状態にするものです。 (この状態を IT 用語では「Excel のインスタンスが2つある」といいます。) 別立て起動を繰り返せば、3重起動、4重起動となります。

通常起動の Excel と別立て Excel にはどう違うのでしょうか。

基本的に、別立て Excel に使い勝手や制限などの違いはなく、通常起動の Excel との区別はありません。 それぞれの Excel は独立して実行しているので、互いに影響をうけることもありません。

たとえば、普通なら同じファイル名の Excel ファイルを複数開くことはできませんが、別立て Excel にすれば制限されずに開く事ができます。 (ただし、同一のファイルを両方で開く場合には、後から開いた方が「読み取り専用」になりますが。)

万一、どちらかの Excel が異常でフリーズしたり、重い処理で応答なしになっても、別の Excel 実行(インスタンス)には関係ないので、普通に使うことができるのです。

では Excel を多重起動して何か困ることはないのでしょうか。

ワークブック間をまたぐような操作で、一部違いが出るものがあります。

たとえばワークブック間でのセルのコピー&ペーストするときに、貼り付け先が別の Excel だと「形式を選択して貼り付け」の使用が制限されます。 クリップボード経由で別立て Excel に持っていける情報といけないものがあるようです。

マクロで「開いている全てのブック」を選択しても、別の Excel のマクロは出てきません。

逆にいうとその程度の違いしかなく、通常作業で困るようなことはないはずです。

 



 

Excelを別立て起動するショートカットリンク

応答なしになるような重い Excel ファイルを開くときには、むしろそのファイルだけを別立て Excel にして開いた方が合理的です。 そうすれば、今開いているほかの Excel ブックが巻き添えになることもありません。

もしそのファイルが、タスクバーの Excel のジャンプリストにリストアップされていれば、Altキーを押しながらクリックするだけで、専用の別立て Excel で開きます。

リストに無くても、新規の別立て Excel から開けばいいのですが、「ファイルを開く」からそのファイルを探し直すのはちょっと面倒です。 出来ればワンアクションで開きたいところです。

そこで、「Excelを別立て起動するショートカットリンク」を作成するバッチを用意しました。

@if(0)==(0) echo off
  setlocal
  for /f "tokens=2 delims==" %%a in ('assoc .xlsx') do set XLTYPE=%%a
  for /f "tokens=2 delims==" %%a in ('ftype %XLTYPE%') do set XLEXE=%%a
  cscript.exe //nologo //E:JScript "%~f0" %XLEXE%
  exit /b
@end
with (WScript.CreateObject("WScript.Shell").CreateShortcut("Excel [別起動].lnk")) {
    TargetPath = WScript.Arguments(0);
    Arguments = "/x";
    Save();
}

【使用法】

  1. 上記バッチスクリプトをテキストエディタ(メモ帳など)にコピー&ペーストし、バッチファイルとして保存します。
    • 拡張子(ファイル名の最後)を「.bat」とします
  2. 保存したバッチファイルをダブルクリックして実行します。
  3. すると、同じ場所に「Excel [別起動]」というExcelアイコンのショートカットが作成されます。
  4. バッチファイルはもう不要なので削除します。

フリーズしがちな Excel ファイルをこのショートカットアイコンにドラッグ&ドロップすれば、それ専用の別立て Excel で開くことができます。 複数のファイルをドラッグ&ドロップすることも可能です。

このショートカットをエクスプローラの「送る」に登録しておけば、Excelファイルの右クリックからいつでも別立て Excel で開けて便利です。 「送る」に登録するには、開いているフォルダのアドレスバーに「sendto」と入力して移動したフォルダに、Excel ショートカットアイコンを移動します。

【注意】 セキュリティ上の観点から、本記事のバッチに限らず、BAT ファイルは、メールやチャットに添付したり Web リンクや共有フォルダからダウンロードできるようにしないでください。また、そのような経路でBAT ファイルを入手した場合 、内容を確認せずにうかつに実行しないよう注意してください。

まとめ

本記事では、Excelを多重起動させる方法をいくつか紹介しました。

これで、Excel が処理中で応答なしとなっても、完了を待ちながら別作業を進められるようになりました。

「Excelが応答なしで固まるせいで、タバコを吸いに行かなければならない!」などとボヤいているおじさんがいたら、健康を気遣って別立てExcelを教えてあげましょう。

本記事の内容は、Windows10 で Exce 2013 と Office 365(Excel 2019相当)で動作確認をしました。