エクセルファイル(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
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
この回答への補足
業務で使用できたらと思い質問させていただきました。
もう少し実現したいことを詳細に書きたいと思います。
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Visual Basic(VBA) エクセルVBA 既存エクセルを開きその中のシートとしてCSVファイルを開く 3 2023/05/31 13:11
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) エクセルVBA エクセルを開いた後に編集可能な状態にするには? 2 2023/06/14 11:58
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
中華ゲーム機のGame Console R3...
-
2002年製のpcと2008製のpcがあ...
-
情シスに異動するには。 非情シ...
-
ソフトに致命的なバグがあるか...
-
PowerShellで自分が書いたコマ...
-
Microsoftが非推奨にしてるかど...
-
スクリープロットの見方。この...
-
Windowsに致命的なバグがあるか...
-
ソフトが安定版かどうかを知る...
-
ソフトは安定版しか使うべきで...
-
PowerShellは大企業で使われて...
-
ファイル名とファイルの中身の...
-
PowerShellの使い方を学ぶのに...
-
PowerShellでバグが起きる確率...
-
SSDを放置していたらファイル名...
-
WinMergeはファイル名を比較す...
-
質問です! 現在就活中で監視方...
-
ハッシュ値を取る時はファイル...
-
マウスにチャタリングが起きな...
-
PowerShellに将来性はあるので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
使用中のセクタが不良セクタに...
-
ファイル構造が破損しているフ...
-
すみません!パソコン開いて電...
-
現在と現在から20年前の2003〜2...
-
2つのファイルのバイナリをコン...
-
SSDを定期的にデフラグした方が...
-
どのストレージが一番高い所か...
-
AzureとOneDriveって何が違うの...
-
SSDに不良セクタがあるかどうか...
-
S.M.A.R.T.を見るのに1番有名な...
-
SSDに不良セクタが発生したら、...
-
次は、どこのメーカーのPCを買...
-
このパソコンは重量が689gと非...
-
ストレージの中に破損している...
-
SSDのデータがビット落ちにより...
-
SSDにTRIMをしたいのですがSSD...
-
コマンドプロンプトって「cmd」と...
-
SSDの不良セクタを代替セクタに...
-
SSDにTRIMってした方が良いので...
-
ファイルを記録してあるセクタ...
おすすめ情報