ファイルを開いたときに他の仮想デスクトップに自動的に切り替わらないようにする

ファイルを開いたときに他の仮想デスクトップに自動的に切り替わらないようにする

私はしばらくの間、Windows 10 で仮想デスクトップを使用してきました。問題なく動作していますが、私が見つけた唯一の問題であり、解決したいのは次のシナリオです。

  • 私はバーチャルデスクトップ 1Microsoft Excel または Microsoft Word で Sheet.xlsx または Doc.docx を開く
  • 私はバーチャルデスクトップ 2別のシート/ドキュメント、Sheet2.xlsx または Doc2.xlsx を開こうとしています

この場合は、デスクトップ 1すでにExcel / Wordが開いているため、デスクトップ 2私はそこにいるので。もちろん、Sheet2.xlsx / Doc2.xlsx ウィンドウをデスクトップ 2 に移動することもできますが、マルチタスクから手動で行う必要があります。

他のアプリケーションは試していませんが、おそらく同じ動作だと思います。

この動作を回避し、Windows で現在の仮想デスクトップ内の他のドキュメント/シートを開く方法はありますか?

答え1

MS Office 2013 以降、各 Office アプリのウィンドウは実行可能ファイルの単一のインスタンスで実行されます。インスタンスが新しいウィンドウを開くと、タスク ビューはまず既存のアプリ ウィンドウに切り替わります。(もう 1 つの不満は、複数の UNDO コマンドが複数のウィンドウにわたって時系列でバックトラックすることですが、これは決して私が望んでいることではありません。)

ワードとエクセル

私は、コマンド ライン オプションを使用して、Word と Excel の各ウィンドウを別々のインスタンスで実行することで、Office 2016 の問題を解決しました。Word の場合、オプションは/N、Excel の場合、オプションは です/X。起動時間が少し長くなり、メモリも少し余分に消費されます。一度に多くのウィンドウを実行することはないので、私にとっては、煩わしさが軽減されるのは価値があります。

デスクトップ アイコン、カスタム ツールバー、その他のショートカットの場合は、プロパティを編集し、ターゲット コマンド ラインにオプションを追加するだけです。

"C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE" /X "C:\Data\Weather\Weather Log.xls"

ファイルを開いたとき(ダブルクリックなど)にオプションを適用するのは少し難しくなります。

  1. コマンドウィンドウを開く管理者として実行

  2. ファイル拡張子に関連付けられたファイルの種類を検索します。

> 関連 .xls
.xls=Excel.シート.8
  1. そのファイルタイプを開くために使用されたコマンドを見つけます:
> ftype excel.sheet.8
excel.sheet.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" "%1"
  1. 次のコマンドをオプションを含むコマンドに置き換えます。
> ftype excel.sheet.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
excel.sheet.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
  1. 使用するファイル拡張子ごとに手順 2 から繰り返します (例: .xlsx)。同じファイル タイプの場合は、これ以上変更する必要はありません。

ftypeExcelのすべてのftype定義を.BATファイルにキャプチャし、各行の先頭と/X各.EXEの後に追加してファイルを編集し、(.BATスクリプトの場合)次のよう%1に変更することで、全面的な変更を行うことができます。%%1

> ftype | find /i "office16\excel" > ftypes.bat

> [テキストエディタ] ftypes.bat
    (上記の変更を行ってください)

結果のスクリプトを実行すると、次のような出力が生成されます。

> ftypes.bat

> ftype dqyfile=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"
dqyfile=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"

> ftype Excel.Addin="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Addin="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Backup="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Backup="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Chart=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"
Excel.Chart=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"

> ftype Excel.Chart.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Chart.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.CSV="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.CSV="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Macrosheet="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Macrosheet="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.OpenDocumentSpreadsheet.12="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.OpenDocumentSpreadsheet.12="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Sheet.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Sheet.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Sheet.12="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Sheet.12="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.SLK="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.SLK="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Template="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Template="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Template.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Template.8="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.Workspace="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.Workspace="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excel.XLL="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"
Excel.XLL="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X "%1"

> ftype Excelhtmlfile="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X
Excelhtmlfile="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X

> ftype Excelhtmltemplate="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X
Excelhtmltemplate="C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /X

> ftype iqyfile=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"
iqyfile=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X "%1"

その他のオフィスアプリ

一部の Office アプリ、特に PowerPoint には、新しいインスタンスを開始するオプションがありません。ただし、別のユーザーとしてアプリを実行すると、新しいインスタンスが作成されます。そのため、回避策の 1 つは、PowerPoint を同時に開く仮想デスクトップの数だけ、ローカル Windows ユーザーを作成することです。この方法は理想的ではありません。新しいものを開く前に、どのユーザー/インスタンスが既に実行されているかを覚えておく必要があるためです。数が少ない場合は、それほど問題にはならないかもしれません。

各ユーザーを作成するには:

設定 > アカウント > 家族とその他のユーザー > [+] このPCに他のユーザーを追加する

  1. この人のサインイン情報がありません
  2. Microsoft アカウントを持たないユーザーを追加する
  3. 新しいユーザー名、パスワード、セキュリティの質問を入力してください

指定されたユーザーとして PowerPoint を起動するショートカットを作成するには、次のようなコマンドを使用するようにショートカットのプロパティを編集します。

runas  /user:user2  /savecred  "C:\Program Files (x86)\Microsoft Office\root\Office16\POWERPNT.EXE"

runasユーザーのパスワードを要求します。 /savecred最初にパスワードを保存し、その後は保存したパスワードを使用します。最初に各ショートカットを作成することをお勧めします。実行: 通常ウィンドウ、後で変更します実行: 最小化

これらのショートカットは、Windows デスクトップまたはカスタム ツールバー メニューに配置できます。PowerPoint が起動したら、そこから PPT ファイルを開くか、ファイル エクスプローラーからファイルをドラッグできます。長時間にわたっていくつかの PPT ファイルで作業している場合は、各ファイルのショートカットを作成し、どのユーザーとして実行するかを指定できます。

PPT ファイルから PowerPoint インスタンスを開く

残念ながら、PPT ファイルを上記のデスクトップ ショートカットのいずれかにドラッグしても機能しませんrunas。これは、PowerPoint のコマンド ライン全体を引用符で囲む必要があるためです。PPT ファイルを直接開くショートカットには、引用符を整理するための中間スクリプトが必要です。次のようなスクリプトを作成します。PowerPoint_User.bat「:」

:: Usage:  PowerPoint_User  <username>  <PPT filename>
:: Opens a PPT file as a specified user, starting a new PowerPoint instance on
:: the current virtual desktop if that user was not already running PowerPoint.
:: (%~f2 expands %2 to full path with no quotes.  See "call /?".)
@echo off
C:\Windows\System32\runas.exe /user:%1 /savecred "POWERPNT.EXE \"%~f2\""

次に、次のようなコマンドを使用して、各ユーザーのショートカットを作成します。

C:\bin\PowerPoint_User.bat  user2

ショートカットがWindowsデスクトップにある場合は、PPTファイルをそこにドラッグできます。 でショートカットを作成した場合は%USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo、PPTファイルを右クリックして「に送る「」メニューをクリックします。どちらの場合でも、各ショートカットを初めて実行するときにパスワードの入力が求められることに注意してください。

(ショートカットをデバッグする必要がある場合は、実行: 通常ウィンドウcmd /kをコマンドの先頭に追加し、@echo offスクリプトから削除します。

答え2

Excelはシートを開くために同じ実行ファイルを使用するため、デスクトップが切り替わります。解決策は、2番目のファイルを開くことです。インスタンスExcel の:

デスクトップ2へ移動:

  • スタートメニューを開き、Excelを検索します
  • ALTキーを押しながらExcelシンボルをクリック
  • 「Excel の新しいインスタンスを起動しますか?」と尋ねられたら、[はい] を押します。

別のインスタンスが選択されている場合でも、ファイル エクスプローラーで Excel を開くと、シートを開くために最新のインスタンスのみが使用されることがわかりました。

したがって、回避策として、後でデスクトップ 1 で別のシートを開きたい場合は、そのデスクトップのインスタンスに移動し (閉じている場合は新しいインスタンスを開きます)、[ファイル] -> [開く] をクリックして、そのインスタンスで新しいシートを開きます。

答え3

実行可能ファイルの単一のインスタンスで Excel を引き続き実行できるようにする (したがって、ブック間でコピーと貼り付けを引き続き実行できるようにする) 1 つの解決策は、Excel をすべてのデスクトップに表示されるように設定することです。

ウィンドウズ10:

  1. 開けるタスクビュー(Win+Tab キーを押す)
  2. 選択する (ホバーExcel が開いている仮想デスクトップにポインターを置きます。
  3. 開いているExcelウィンドウを右クリックまたは長押ししてクリックします。このアプリのウィンドウをすべてのデスクトップに表示する

Windows 11の場合:

  1. クリックタスクビューアイコンをクリックするか、Win+Tabを押しますタスクビューアイコン
  2. 右クリックしてExcelウィンドウ
  3. 選択するこのアプリのウィンドウをすべてのデスクトップに表示する

答え4

この問題に遭遇したのはつい最近ですが、簡単に解決できるようです。私は Windows 11 を使用しています。たとえば、2 つの仮想デスクトップ (Excel スプレッドシート 2 つを含む) で使用したいアプリとウィンドウを開く場合は、タスク バーの [デスクトップ] ボタンを 1 回クリックするだけです。これで、開いているすべてのウィンドウと、その下部にすべてのデスクトップを表示する画面が表示されます。必要な Excel ウィンドウ (たとえば、デスクトップ 2) をデスクトップ 2 にドラッグするだけです。完了です。

関連情報