Jak sprawdzić, czy arkusz kalkulacyjny Excel 2007 jest otwarty i KTO ma go otwarty przy użyciu VBScript

Jak sprawdzić, czy arkusz kalkulacyjny Excel 2007 jest otwarty i KTO go otworzył za pomocą VBScript?

Próbuję dowiedzieć się, czy skoroszyt programu Excel jest obecnie otwarty przez innego użytkownika i zwraca tego, którego użytkownik jest w moim skrypcie.

Dowiedziałem się już, kto ma ustalić, czy skoroszyt jest obecnie otwarty. Jest to obejście, ale zasadniczo otwieram skoroszyt i sprawdzam, czy jest tylko do odczytu. To działa doskonale; Przetestowałem to.

Wiem, że jest to możliwe, ponieważ Excel udostępnia użytkownikowi plik, który jest otwarty, jeśli otworzysz go za pomocą przeglądarki.

Oto mój kod (isWorkbookOpen.vbs):

Set objExcelTestWorkbook = CreateObject("Excel.Application")
objExcelTestWorkbook.DisplayAlerts = False 'doesn't display overwrite alert
testWorkbookFile = "I:\test_workbook.xlsx"
Set objBook = objExcelTestWorkbook.Workbooks.open(testWorkbookFile)

If objBook.ReadOnly Then
    Wscript.echo "The file is read only"
    Call EndScript
Else
    Wscript.echo "The file is available"
    Call EndScript
End If

Function EndScript
    objExcelTestWorkbook.Workbooks.close
    objExcelTestWorkbook.Quit
    WScript.Echo "Closed " & testWorkbookFile
    WScript.Quit
End Function

Ponadto uruchamiam to z linii poleceń:

cscript isWorkbookOpen.vbs

questionAnswers(2)

yourAnswerToTheQuestion