tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^5: 共有フォルダ内のエクセルファイルを現在誰が使用しているのか知りたい
投稿日: 2011/03/07(Mon) 12:44
投稿者しるふぃん
私が確認したのは、VB6.0上からexcelアプリケーションとして一度ワークブックを開きます。
その後UserStatusを取得しすでに開かれているか、誰が開いているか等の判断を行っています。

【サンプル】
    Dim xlApp    As Excel.Application
    Dim xlBook   As Excel.Workbook
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open(\\*****\***.xls)
    Dim Users, buf As String, i As Long
        
    If xlBook.MultiUserEditing Then
        Users = xlBook.UserStatus
        If UBound(Users) = 1 Then
            MsgBox "他に開いているユーザーはいません"
        Else
            MsgBox "あなた以外の誰かがブックを開いています"
            For i = 1 To UBound(Users)
                buf = buf & Users(i, 1) & Chr(9) & Users(i, 2) & Chr(9) & Users(i, 3) & vbCrLf
            Next i
            MsgBox buf
        End If
    Else
        MsgBox "共有ブックとして開いていません"
    End If
    
    xlBook.Close
    Set xlBook = Nothing
    xlApp.Quit
    Set xlApp = Nothing

私がよすみさんの趣旨をうまく理解できていないかもしれませんが
ファイル一覧のようなフォームを開くと、そこに使用状況がある。という感じなのですかね?

私の例はあくまでもファイル名を選択してからそのファイルが〜という形なら流用できそうですがファイル一覧のフォームの使用状況にという形であれば、少し改良が必要ですね。
(使用状況の更新をどうするかも考慮しないとですが)

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。