ACCESSからExcelファイルが開いているか調べる
- ACCESS
 - 
                        
2012-03-19                                                                                                 - 更新:2022-09-24                                             
この記事は最終更新日から1年以上経過しています。
                    
                    ACCESSからオートメーションでExcelを開き、WorkbooksのReadOnlyプロパティを取得して現在開かれているかどうかを判別します。
まずは変数を宣言
Dim xlApp As Object Dim xlBook As Object Dim FileName As String
ファイルを指定します。
Environ("USERPROFILE")はWindowsの環境変数でC:\Users\ユーザー名というパスを返します。
FileName = Environ("USERPROFILE") & "\デスクトップ\sample.xls"
Excelのオートメーションオブジェクトを作成します。
Set xlApp   = CreateObject("Excel.Application")
Set xlBook  = xlApp.Workbooks.Open(FileName)
開かれたワークブックのReadOnlyプロパティがtrueなら誰かがそのファイルを開いている、ということになります。
If xlBook.ReadOnly Then
    MsgBox "開いています。"
Else
    MsgBox "開いていません。"
End If
ワークブックを閉じてExcelを終了します。
xlBook.Close xlApp.Application.Quit
最後にオブジェクトの破棄も忘れずに
Set xlBook = Nothing Set xlApp = Nothing
                        この記事がお役に立ちましたらシェアお願いします
                    
                    
                
                        39,330 views 
                                                                    
                    
                




有り難うございます。
非常に助かりました。
コメントありがとうございます。
お役に立てて何よりです。
environのUSERPROFILEには何を入力するのですか?
コメントありがとうございます。
Environ(“USERPROFILE”)のUSERPROFILEは、例ではありませんのでそのままお使い頂けます。
Environはシステム環境変数の値を取得する関数になり、
Environ(“USERPROFILE”)はUSERPROFILEというシステム環境変数の値を返します。