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