開いているExcelドキュメントを別のウィンドウに移動する


14

関連(ただし同じではありません):Excelファイルを新しいウィンドウで開きます

同じウィンドウで複数のドキュメントを開いたExcelのインスタンスがある場合。Excelの現在実行中のインスタンスのウィンドウの1つを「ティアオフ」して、まったく異なるウィンドウにする方法はありますか?

何をする 法案に合わない

  • すべてを並べる/並べて表示する/他のMDIのもの; 別のモニターで個別に最大化することができ、ウィンドウシステムによって異なる方法で管理される別のウィンドウが必要です。
  • 実行中のインスタンスで保存/閉じてから、Excelの新しいインスタンスを開き、そこでファイルを開きます(これは私が現在行っていることですが、それは苦痛です)

編集:対象のExcelバージョンは2007と2010ですが、何でもできます


あなたを助けることはできませんが、私はExcelで両方を見ました:1つのウィンドウ内のすべて(MDIのような)と各シート1つのウィンドウ。設定を確認しましたか?たぶんそれはオプションですか?
アーロンディグラ

1
許容できるとの潜在的により良い私が今持っているものよりもだろうが、私は、そのオプションのどこにも見てないよ@Aaron
ダニエルDiPaolo

1
マイクロソフトは、私を単一のExcelウィンドウに閉じ込めてしまったことを気にします!OSはWindowsと呼ばれませんか?Window 7へようこそ!
dunxd

@dunxd-「古い」コメントを読んでいるのは面白いです。なぜなら、ここでは将来、Excelが各ブックを別々のウィンドウで開くと不満を言うユーザーが絶えずいるからです。
ashleedawg

Chromeのようなタブ付きウィンドウは、「切り離す」または再結合できるので、両方の長所があります。素晴らしいUIの前進。
dunxd

回答:


4

面白いアイデア。カスタムマクロなしではこれを実行できないと合理的に確信しています。雨の日曜日です...

Sub OpenInNewInstance()
     Dim objXLNewApp As Excel.Application
     Dim doc As String

     doc = ActiveWorkbook.FullName
     ActiveWorkbook.Close True

     Set objXLNewApp = CreateObject("Excel.Application")

     objXLNewApp.Workbooks.Open doc
     objXLNewApp.Visible = True
End Sub

VBAに精通していないと仮定すると、次のことが必要になります。

  1. 上記のコードをコピーします
  2. 新しいExcelブックを開いた状態で、ExcelのVBAエディター(Alt + F11)を開きます
  3. VBAProject(Book1)(または左メニューで呼び出されるもの)を右クリックします。
  4. [挿入]> [モジュール]を選択します
  5. メインウィンドウにコードを貼り付けます
  6. Excelに戻り、別のブックを選択してコードをテストします(ブックを閉じる前に保存します)
  7. VBAエディターに戻り、貼り付けたモジュールを選択して、再生ボタンを押します

マシンに3つのバージョンのExcelがインストールされており、Excel 2010でこれを実行すると、Excel 2003の新しいインスタンスが開きます。

これがニーズに合っている場合、これをアドインにパッケージ化し、リボンボタンとして使用できるようにすることができます。私に知らせてください、そして、あなたがそうすることに慣れていないならば、私は手伝うことができます。

編集:このアプローチが有効な場合、明らかに、追加のコードが追加され、Excelの新しいインスタンスが別のウィンドウで最大化されるようになります。お知らせ下さい。


これは完璧です!(Excel 2010を使用する必要があるという状況を考えると)
トビアスキーンズラー14年

または、Excelアイコンを右クリックして[Microsoft Excel]をクリックするだけで、新しいインスタンスが開きます(これは基本的に上記のコードが実行しているようです)。私がやったこと(偶然、それを繰り返す方法がわからない)は、既存のアプリケーションのMDIの外にExcelワークブックを開きます(事実上、そのワークブックを別のウィンドウに入れることができます)が、それでも他のワークブックと対話できます(私のメインMDIのvlookups(vlookupsなど)。-
ウィリアム

3

新しいウィンドウにシートを「切り離す」方法はありませんが、最初から知っていれば 2つのウィンドウ、これが最も簡単な方法です。

通常どおり、最初のファイルを開きます。Shiftキーを押しながらExcelのタスクバーボタン(画面の下部、[スタート]ボタンと時計の間)をクリックします。これにより、Excelは新しいインスタンスを別のウィンドウとして強制的に開きます。その新しいウィンドウに移動し、[ファイル]-> [開く]をクリックして2番目のファイルを開きます。必要に応じて、複数のウィンドウを洗浄して繰り返します。

残念ながら、Excelを開くためにファイルをダブルクリックする場合、2番目のウィンドウの習慣を破る必要があります。これは私の通常の問題です。しかし、いくつかの前向きな考えでは、簡単な方法はありません。


0

2つのインスタンスを開くには、開きたい最初のファイルをダブルクリックします。それが開いたら、start / programs / msoffice / excelに移動し、そこから別のインスタンスを開きます。その後、ファイル/開くを使用できます。[フォルダオプション]> [ファイルの種類]、[XLS]、[詳細]を確認していない場合は、[開く]フォームを確認します。


私はすでにこれを行っていることを具体的に述べました。
ダニエルディパオロ

申し訳ありませんが、ウィンドウとインスタンスが混同されていました。そして、あなたは両方のモニターでExcelを最大化してから表示することを試みたと思います->そのウィンドウを個別に管理できる新しいウィンドウ?
デイブ

[表示]> [新しいウィンドウ]は、同じインスタンス内に新しいウィンドウを作成するだけで、新しい非MDIウィンドウは作成しません。
ダニエルディパオロ

0

上記の答えは、おそらくアクティブなワークブック以外のワークブックで機能します。ここに私が使用したものがあります


起動時に、ワークブックがインスタンスに単独であることを確認します。

Private Sub Workbook_Open()
    If Application.Workbooks.Count > 1 Then  'check if there's >1 open wb's in this instance
        If MsgBox("This workbook will be moved to a new instance of Excel," & vbLf & _
            "so as to not affect performance of your other workbooks.", _
            vbOKCancel + vbInformation + vbDefaultButton1 + vbMsgBoxSetForeground) _
            = vbCancel Then Exit Sub
        Debug.Print Application.Hinstance, "Moving wb to new instance."
        OpenInNewInstance
        Debug.Print Application.Hinstance, "Moved wb to new instance."
    Else
        Debug.Print "This wb is in it's own instance. (#" & Application.Hinstance & ")"
    End If
End Sub

Sub OpenInNewInstance()
    With ThisWorkbook
        .Save                                           'save workbook before making it read-only
        .ChangeFileAccess xlReadOnly                    'make this wb read-only (so the other isn't)
        Shell ("excel.exe /x """ & .FullName & """")    'open current wb in new instance
        .Close                                          'close this workbook
    End With
End Sub

このコードは、に行くモジュールワークブックはすぐにそれを開いたときに、それが唯一、このインスタンスで開いているブックだし、そうでない場合ならばチェックが見れるように、:ThisWorkbook

  1. 現在のワークブックを保存する
  2. 現在のwbを読み取り専用として設定(2番目のコピーが問題になるのを防ぐため)
  3. 新しいインスタンスでExcelを開くためのコマンドプロンプトへのシェル(Excelの/xコマンドラインスイッチを使用)、現在のブックの別のインスタンスの読み込み
  4. 現在のワークブックを閉じる

必要に応じて、新しいインスタンスを開くときにカスタムコマンドラインを使用して、命令などを新しいインスタンスに転送できます。また、新しいインスタンスのアプリケーションウィンドウを隠すことの長所と短所を考慮することもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.