• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBAを利用して別ウィンドウでブックを起動する)

EXCEL VBAを利用して別ウィンドウでブックを起動する方法

このQ&Aのポイント
  • EXCEL VBAを使用して、A.xlsのセルをダブルクリックすると別のウィンドウでB.xlsのワークシートが開かれる方法を探しています。現在のVBAコードではA.xlsとB.xlsが同じファイルとして開かれてしまうため、両方のファイルを独立して表示したいと考えています。
  • A.xlsのセルをダブルクリックするとB.xlsの特定のワークシートが別ウィンドウで開かれるEXCEL VBAコードを作成しています。現在のコードではA.xlsとB.xlsが同じファイルとして開かれてしまうため、それぞれのファイルを別々のウィンドウで表示したいと考えています。
  • EXCEL VBAを使用してA.xlsのセルをダブルクリックすると別ウィンドウでB.xlsのワークシートが開かれるコードを作成しています。しかし、現在のコードではA.xlsとB.xlsが同じファイルとして開かれてしまい、画面下のタブを切り替えてファイルを確認する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>A.xlsもしくは、B.xlsのどちらかを閉じると両方閉じてしまいます。 どんなコードで閉じているのでしょうか? 通常は個別に閉じることが出来ます。 >A.xlsとB.xlsを画面上に並べて比較することができず [ウィンドウ]-[整列] で並べて表示する事ができますよ。 コードは記録マクロでも取得できます。 --------------------------------------------------------------- CreateObject()を使えば、いくつでも別プロセスでエクセルを起動する事が出来ます。 VBからエクセルを操作する http://hanatyan.sakura.ne.jp/vbhlp/excel1.htm -------------------------------------------------------------- >目標は、A.xlsのセル($A$1)をダブルクリックすれば、B.xlsのワークシート(1)が開く。 A/Bのブックにコードを記入してくださいね。 下記を元に、希望のシートが開くようにコードを追加してみて下さい。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim c As Workbook If Target.Address = "$A$1" Then If Workbooks.Count >= 1 Then For Each c In Workbooks If c.Name = "B.xls" Then MsgBox "ブックは開いています。" End End If Next End If End If Workbooks.Open "B.xls" Windows.Arrange ArrangeStyle:=xlTiled End Sub

database_s
質問者

お礼

さっそくのご回答ありがとうございました。 わたくしの質問の書き方が悪かったので、少し違うご意見でした。 でも、知らなかったコードなどがあり、勉強になりました。 ありがとうございます。

database_s
質問者

補足

業務で使用できたらと思い質問させていただきました。 もう少し実現したいことを詳細に書きたいと思います。 A.xlsのセル($A$1)は、1号棟1階と入力されています。 A.xlsのセル($B$2)は、2号棟2階と入力されています。 B.xlsのワークシート(1)には、1号棟1階の地図が貼っています。 B.xlsのワークシート(2)には、2号棟2階の地図が貼っています。 A.xlsを開いている状態で、1号棟1階の地図が見たくなったとします。A.xlsのセル($A$1)をダブルクリックするとB.xlsのワークシート(1)が独立した別ウィンドウで開きます。お互いのファイルが独立しているので並べて両方見ることができます。 次に、この2つのエクセルファイルが開いている状態で、再びA.xlsのセル($B$2)をダブルクリックすると、今開いているB.xlsのワークシート(2)がアクティブになるということを実現したいのです。 A.xlsのセルをダブルクリックした時のアクションに2つの意味を持たしたいのです。1つは、B.xlsが開いてなければB.xlsを開いて目的のワークシートをアクティブにする。もう1つは、B.xlsが開いていれば、その中の目的のワークシートをアクティブにする。です。 ややこしいことを長々と書きましたが、もう少し自身でも考えたいと思います。ご協力お願いします。

関連するQ&A