「教えて!ピックアップ」リリース!

最初にメニュー画面となるブックを開いた後、データブックをバックグランドのみで開きたいのですが、エクセルVBAで単純にOPENを行うと画面上にデータブックが表示されてしまいます。操作作業者に画面が次々入れ替わることを見せたくないのですが、ブックをバックグラウンドだけで開く方法はあるのでしょうか。VBAについては素人で宜しくお願いします。

A 回答 (5件)

ごめんなさい。

解決済みと思って見ていませんでした。 まだですか?

後で開いた3つのブックは、VBAで操作しないのですか。
操作するのでしたら、ブックをオブジェクト変数に入れておいた方が操作しやすい
と思うのですが・・・ 一応何処でどのように使うのか判りませんので・・・

こんな感じで如何でしょうか。

ブックを開いてから非表示にするまでの瞬時の画面のことですね。
それなら、その間、ScreenUpdating = False でどうでしょうか。

Public Bk1 As Workbook
Public Bk2 As Workbook
Public Bk3 As Workbook
Dim PathName As String

Sub Auto_Open()
PathName = ThisWorkbook.Sheets("メニュー").Range("C28").Value
ファイル読込 "初期値.xls", Bk1
ファイル読込 "データ1.xls", Bk2
ファイル読込 "データ2.xls", Bk3
End Sub

Sub ファイル読込(BkName, ObjBk)
Application.ScreenUpdating = False
Set ObjBk = Workbooks.Open(Filename:=PathName & "\" & BkName)
Windows(BkName).Visible = False
Application.ScreenUpdating = True
End Sub

この回答への補足

できました。ありがとうございました。

Public SyokichiFile As Workbook
Sub auto_open()
Call ファイル読込("初期値.xls", SyokichiFile)
End Sub
Sub ファイル読込(Carentfile, ObjBook)
Application.ScreenUpdating = False
PathName = Workbooks("勤務状況.xls").Sheets("メニュー").Range("C28")
Set ObjBook = Workbooks.Open(FileName:=PathName & "\" & Carentfile)
End Sub

補足日時:2004/07/12 12:59
    • good
    • 0
この回答へのお礼

ありがとうございました。試みましたが、勉強不足で理解できませんでした。
・Public Bk1 As Workbook
・ファイル読込 "初期値.xls", Bk1
・Sub ファイル読込(BkName, ObjBk)
・Set ObjBk = Workbooks.Open(Filename:=PathName & "\" & BkName)のつながり、関連が分かりませんでした。(VBを知らないため、Bk1とBkNameとObjBkが何だか分からない)

お礼日時:2004/07/08 20:07

#2です。



訂正だけで申し訳ないのですが、先に書いた私のアドバイスは全くの勘違いでした。

bookはOpenしないとWorkbooksコレクションに読み込まれないはずでした。

#1さんの言われるように、Openした直後にvisibleをfalseにすれば非表示になったと思ったのですが…。
    • good
    • 2

> この方法だとブックをOPEN毎に画面が入れ替わるのです。



そんなことありませんよ。

当然、そのような操作をすれば、そうなります。

BOOKを10個開いて、1つのブックだけのウィンドウを表示させた状態で、10個のブックを
操作できるのです。
    • good
    • 0
この回答へのお礼

おかしいな? 下記のように作ってあるのですが
メニュー.xlsが起動すると順次
初期値、データ1、データ2と読み込んでいくのですが
この順で次々と画面表示が入れ替わり、
最後にメニュー.xlsの画面となります。


Sub auto_open()
CarentFile = "初期値.xls"
Application.Run "ファイル読込"
CarentFile = "データ1.xls"
Application.Run "ファイル読込"
CarentFile = "データ2.xls"
Application.Run "ファイル読込"
End Sub

Sub ファイル読込()
PathName = Workbooks("メニュー.xls").Sheets("メニュー").Range("C28")
Workbooks.Open Filename:=PathName & "\" & CarentFile
ActiveWindow.Visible = False
End Sub

お礼日時:2004/07/02 13:08

試していないのですが...



dim book as Workbook

set book = Workbooks("hoge.xls")

という具合に開くファイルをオブジェクト変数へとって扱ってみてはどうでしょうか?
    • good
    • 1
この回答へのお礼

ありがとうございます。素人ですので理解できないのですが。
set book = Workbooks("hoge.xls")は、
Workbooks.Open Filename:=PathName & "\" & "hoge.xls"に相当する命令になるのですか?

だとしたら、PathName に相当するところは
どのように記述すればよいのでしょうか。

お礼日時:2004/07/02 16:36

ブックを開いた後、すぐ非表示にするとか、最小化するのは、どうなんですか?



非表示は、
Workbooks.Open "c:\Data\Book2.xls"
ActiveWindow.Visible = False

最小化は、
Workbooks.Open "c:\Data\Book2.xls"
ActiveWindow.WindowState = xlMinimized
    • good
    • 0
この回答へのお礼

ありがとうございます。この方法だとブックをOPEN毎に画面が入れ替わるのです。また、LANネットワークでデータブックにOPENをかけるので時間を要し、画面が入れ替わるのがスローでみっともない状態になってしまうのです。

お礼日時:2004/07/01 12:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング