プロが教える店舗&オフィスのセキュリティ対策術

VBSでExcelファイルを起動するときに、VBSファイルをクリックすれば
同じファイルがどんどん重複して開きます。コードは下記の通りなのですが、
どうすれば、重複して開かないようにできるでしょうか。

重複したら開いていますとMsgbox表示し、開かせない動作にしたいのです。

ただ、開くだけのコードです。

Const File_Name = "任意のファイルパス"

Dim app
Set app = CreateObject("Excel.Application")

With app
.Visible = True
Dim wb
Set wb = .Workbooks.Open(File_Name)
End With

よろしくお願いします。

A 回答 (1件)

こんにちは



>どうすれば、重複して開かないようにできるでしょうか。
現在対象ブックが開いているかどうかをチェックして、分岐すれば良いのではないでしょうか?

以下は、チェックするだけの一例です。
(APIを利用すれば、もう少し簡単になるかも知れませんが)
ご参考にでもなれば。

Dim exl, bk
Const p = "C:\Users\fuga\hoge\piyo.xlsx" ' 対象ブックのパス

On Error Resume Next
Set exl = GetObject(, "Excel.Application")
if Err.Number = 0 then
For Each bk In exl.Workbooks
If bk.Path & "\" & bk.Name = p Then Msgbox "すでに開いています"
Next
End If
On Error Goto 0
    • good
    • 0
この回答へのお礼

ありがとうございます。参考にさせていただきます。

お礼日時:2022/10/02 16:42

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