EXCEL VBAを利用して別ウィンドウでブックを起動する
エクセルファイル(A.xls)内のセル($A$1)をダブルクリックすることで、エクセルファイル(B.xls)のワークシート(1)を開くVBAを作成しています。
ここまでは出来たのですが、1つ問題があります。
上記VBAでは、A.xls と B.xls が1つのエクセルファイルとして開かれてしまいます。(表現が誤っていれば申し訳ないです)
どういうことかと言いますと、A.xlsもしくは、B.xlsのどちらかを閉じると両方閉じてしまいます。また、A.xlsとB.xlsを画面上に並べて比較することができず、画面下のタブを切り替えてそれぞれのファイルを見なければなりません。
例えば、スタート→プログラム→MicroSoftOffice→EXCELを2回行えば、エクセルファイルが別ウィンドウでそれぞれ独立して立ち上がります。要は、A.xlsのセル($A$1)をダブルクリックした時にB.xlsはこのような状態で立ち上がってきて欲しいのです。
以下、作成途中のVBAコードの一部です。A.xlsのセル($A$1)をダブルクリックすると、独立したエクセルを開くことはできました。
Dim OP As Double
OP = Shell("EXCEL.EXE", vbMaximizedFocus)
しかし、B.xlsのワークシート(1)はA.xlsと1つのファイルとして開かれてしまいます。
(例:A.xlsのセル($A$1)をダブルクリックすると、B.xlsと新規EXCELファイルの全部で3つの状態になります。)
目標は、A.xlsのセル($A$1)をダブルクリックすれば、B.xlsのワークシート(1)が開く。
A.xlsのセル($B$2)をダブルクリックすれば、B.xlsのワークシート(2)が開くです。
長くなりましたが、どうかご助言よろしくお願い致します。
【作成途中VBAコード】
Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean)
Dim OP As Double
Dim Bfile As String
Bfile = target.Address
Select Case Bfile
Case "$A$1"
OP = Shell("EXCEL.EXE", vbMaximizedFocus)
Workbooks.Open ("C:\B.xls")
Worksheets("ワークシート(1)").Activate
Case Else
End Select
End Sub
お礼
もう元には戻らないと思っておりました。 確かにご指摘のとおりに行いましたらなおりました。 ありがとうございました。