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