カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

ACCESSからExcelファイルが開いているか調べる

この記事は最終更新日から1年以上経過しています。

ACCESSからオートメーションでExcelを開き、WorkbooksReadOnlyプロパティを取得して現在開かれているかどうかを判別します。

まずは変数を宣言

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
この記事がお役に立ちましたらシェアお願いします
36,971 views

“ACCESSからExcelファイルが開いているか調べる” への4件のフィードバック

  1. harunori より:

    有り難うございます。
    非常に助かりました。

  2. あん より:

    environのUSERPROFILEには何を入力するのですか?

    • K.Sugimoto より:

      コメントありがとうございます。
      Environ(“USERPROFILE”)のUSERPROFILEは、例ではありませんのでそのままお使い頂けます。

      Environはシステム環境変数の値を取得する関数になり、
      Environ(“USERPROFILE”)はUSERPROFILEというシステム環境変数の値を返します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です