ファイルが使用中か調べ、使用者の名前を表示

'参照設定:windows script host object model

Private Sub Workbook_Open()

    Workbooks.Open FileName:="\\192.168.1.9\network-data\此花事業場\00 全般\個人フォルダ\平瀬くみ子\08_尾崎さん\Opentest.xlsm"

    If ActiveWorkbook.ReadOnly Then

        

 '--- WshNetworkオブジェクトを生成 ---'

    Dim WshNetworkObj As Object

    Set WshNetworkObj = CreateObject("WScript.Network")

    

    '--- コンピュータ名を取得 ---'

    Dim pc_name As String

    pc_name = WshNetworkObj.ComputerName

    

    '--- ユーザー名を取得 ---'

    Dim user_name As String

    user_name = WshNetworkObj.UserName

 

    MsgBox "コンピューター名:" & pc_name & "ユーザー名:" & user_name & "使用中です" & Chr(9) _

           & "ファイルは開きません。しばらくたってからご使用ください。"

        ActiveWorkbook.Close

    Else

'        MsgBox "誰も開いていません"

end if

end sub

★参照設定なしの場合

 

Private Sub Workbook_Open()

    Workbooks.Open FileName:="\\192.168.1.9\network-data\此花事業場\00 全般\個人フォルダ\平瀬くみ子\08_尾崎さん\Opentest.xlsm"

    If ActiveWorkbook.ReadOnly Then

        

 '--- WshNetworkオブジェクトを生成 ---'

    Dim WshNetworkObj As Object

    Set WshNetworkObj = CreateObject("WScript.Network")

    

    '--- コンピュータ名を取得 ---'

    Dim pc_name As String

    pc_name = WshNetworkObj.ComputerName

    

    '--- ユーザー名を取得 ---'

    Dim user_name As String

    user_name = WshNetworkObj.UserName

 

    MsgBox "コンピューター名:" & pc_name & "ユーザー名:" & user_name & "使用中です" & Chr(9) _

           & "ファイルは開きません。しばらくたってからご使用ください。"

        ActiveWorkbook.Close

    Else

'        MsgBox "誰も開いていません"

end if

end sub

 

Sub Sample()

 

    Dim WshNetworkObject As IWshRuntimeLibrary.WshNetwork   '---(1)

    

    Set WshNetworkObject = New IWshRuntimeLibrary.WshNetwork '---(2)

      

    With WshNetworkObject

        MsgBox "ユーザー名: " & .UserName & vbCrLf _

             & "コンピュータ名: " & .ComputerName

    End With

    

    Set WshNetworkObject = Nothing

End Sub

起動時のユーザー名を調べる

'Sub 起動時()

'高速開始

'    If ActiveWorkbook.ReadOnly = True Then

'        ActiveWorkbook.Close

'        MsgBox "「HEV検収タブ.xlsm」は" & Application.UserName & "が使用中です"

'    End If

end sub