Excel 2007スプレッドシートが開いていて、WHOがVBScriptを使用して開いているかどうかを確認するにはどうすればよいですか?
Excelブックが現在別のユーザーによって開かれているかどうかを調べ、そのユーザーがスクリプトに含まれているユーザーを返します。
ブックが現在開いているかどうかを誰が判断するかはすでにわかっています。これは回避策ですが、基本的にはブックを開いて読み取り専用かどうかを確認します。それは完璧に機能します。私はそれをテストしました。
ブラウザでファイルを開くと、Excelでファイルを開いているユーザーが表示されるため、これが可能であることはわかっています。
これが私のコード(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
また、コマンドラインからこれを実行します。
cscript isWorkbookOpen.vbs