![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
マクロを含むBook1のシート1上にボタンを配置。それぞれ下記のTestA,TestBを起動するようにしています。
やりたいことは、マクロを含むブックとは別のエクセルアプリケーションを立ち上げて、
Book1.xlsx・・・を開き、 後で、マクロを含むブックからBook1.xlsx・・・を呼び戻すことです。
TestAのマクロは、問題なく(多分)動きますが、TestBのマクロでは、Book1.xlsx が前面に表示されません。
別のエクセルの世界のブックを如何に掴み、且つ、制御する方法について、教えていただきたいのです。よろしくお願い致します。
Sub TestA()
Dim objExcel2
Set objExcel2 = CreateObject("Excel.Application")
objExcel2.Workbooks.Open "C:\Users\User1\ents\Book1.xlsx"
objExcel2.Visible = True
Set objExcel2 = Nothing
Dim objExcel3
Set objExcel3 = CreateObject("Excel.Application")
objExcel3.Workbooks.Open "C:\Users\User1\Documents\Book2.xlsx"
objExcel3.Visible = True
Set objExcel3 = Nothing
Dim objExcel4
Set objExcel4 = CreateObject("Excel.Application")
objExcel4.Workbooks.Open "C:\Users\User1\Documents\Book3.xlsx"
objExcel4.Visible = True
Set objExcel4 = Nothing
End Sub
Sub TestB()
Dim Myxl As Object
Set Myxl = GetObject("C:\Users\User1\Documents\Book1.xlsx", "Excel.Sheet")
Myxl.Activate 'エラーとはならないが、画面には、出てこない
Myxl.Application.Visible = True 'エラーとはならないが、画面には、出てこない
End Sub
尚、別のエクセルアプリケーションを立ち上げた理由は、ベースのエクセルシート(マクロを含むBook) を開いた状態で、小さなWindowで"book1.xlsx"・・・を表示させたかったからです。
No.1ベストアンサー
- 回答日時:
こんばんは。
お久しぶりです。
>別のエクセルアプリケーションを立ち上げた理由は、ベースのエクセルシート(マクロを含むBook) を開いた状態で、小さなWindowで"book1.xlsx"・・・を表示させたかったからです。
何か、難しいことをされているようですが、再現性が得られません。もしかしたら、こういうことをおっしゃっているのでしょうか。ちゃんと理解しているわけではありませんが、この場合は、Aで非表示でも、Bのマクロは、前面にTest1.xlsxが出てきます。単独で、Bでも可能です。むしろ、Aのマクロは意味がありません。使わなくてもよいです。
しかし、オートメーション・オブジェクトを4つも作ったら、たぶん、いろんな所で支障がでるかもしれません。
'//
Sub TestA()
Dim objExcel2 As Excel.Application
Dim wb2 As Workbook
Dim fn As String
fn = "C:\Users\User1\My Documents\Test1.xlsx"
Set objExcel2 = CreateObject("Excel.Application")
'objExcel2.Visible = True
Set wb2 = objExcel2.Workbooks.Open(fn)
Set objExcel2 = Nothing
End Sub
Sub TestB()
Dim wb2 As Excel.Workbook
Dim objExcel2 As Excel.Application
Dim fn As String
fn = "C:\Users\User1\My Documents\Test1.xlsx"
On Error Resume Next
Set wb2 = GetObject(fn)
Set objExcel2 = wb2.Application
objExcel2.Visible = True
If Err() <> 0 Then
Set objExcel2 = CreateObject("Excel.Application")
objExcel2.Visible = True
Set wb2 = objExcel2.Workbooks.Open(fn)
End If
On Error GoTo 0
With objExcel2
.Width = 330
.Height = 390
End With
Set wb2 = Nothing
Set objExcel2 = Nothing
End Sub
'///
WindFallerさん
遅くなりました。ありがとうございます。
結論から言って、複雑にすることは止めることにしました。
苦労する割には、安定性に不安が残る感じがします。
ユーザーインターフェースの観点から、ボタンを押せば
参照エクセルブックが小さなウィンドウで現れ、
元に戻る時も、簡単なのかな・・・
でも、参照エクセルファイルにアクセスする時は、
画面下のアイコンを押せ・・・と定義すれば良いだけの話。
多数のオートメーション・オブジェクトを作ると云々、
便利ではあるが、それに寄り掛かりすぎるのもよろしくない、
という考えで、やっていきたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) バックグラウンドのプロセスのエクセルを閉じる方法 4 2022/05/12 15:39
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- Visual Basic(VBA) VBS Bookを閉じるコード 1 2023/02/16 17:31
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel マクロの編集がグレーに...
-
WPSOffice_マクロの有効化について
-
Excelのマクロでボタンを押すと...
-
エクセル ボタンに設定したマク...
-
エクセルで、「いいね」のよう...
-
エクセル マクロ名にブック名...
-
エクセルマクロで、別のブック...
-
EXCELのマクロが他のパソコンで...
-
エクセルの、記録を終了したマ...
-
複数のマクロボタンをまとめて...
-
(Excel VBA)シートコピー時マ...
-
エクセルの表を複数枚印刷した...
-
Excelのマクロの復元
-
Excelマクロで、稼働中のマクロ...
-
検索はマクロで記録できないの...
-
秀丸で、行順を逆にしたい
-
Excelマクロをバックグラウンド...
-
「フォーム マクロをVisualBas...
-
なぜマクロの記録がなくなって...
-
WEBページからのコピー。エクセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel マクロの編集がグレーに...
-
WPSOffice_マクロの有効化について
-
Excelのマクロでボタンを押すと...
-
エクセル ボタンに設定したマク...
-
エクセルで、「いいね」のよう...
-
エクセルの表を複数枚印刷した...
-
エクセル マクロ名にブック名...
-
エクセルの、記録を終了したマ...
-
複数のマクロボタンをまとめて...
-
VBAについての質問です
-
エクセルマクロで、別のブック...
-
別シートのマクロボタンをマク...
-
Excelマクロで、稼働中のマクロ...
-
エクセルでマクロ(Excel 4.0)...
-
マクロをマクロを使ってコピー...
-
(Excel VBA)シートコピー時マ...
-
Excel:マクロを消す方法教えて...
-
LDPlayerのマクロの編集方法を...
-
EXCELのマクロが他のパソコンで...
-
なぜマクロの記録がなくなって...
おすすめ情報