共有ファイルを開いているユーザー情報を取得
UserStatus プロパティは、ブックを共有ファイルとして開いている各ユーザーの情報を示す、2 次元配列を返します。値の取得のみ可能で、バリアント型(Variant)の値を使用します。
【書式】
object.UserStatus ( index1, index2 )
引数・戻り値
- object  ・・・  対象となる Workbook オブジェクトを指定します。
 
- index1  ・・・  各ユーザーを示すインデックス値を指定します( 1 から始まる 数値)。
 
- index2  ・・・   1 から 3 の整数値を指定します。1 を指定すると ユーザー名、2 を指定すると ユーザーがブックを最後に開いた日付・時刻、3 を指定すると ファイルの種類 を取得することができます。また、3 を指定した場合、ファイルの種類が 排他 であれば、1 を、共有 であれば、2 を返します。
 
ブックを開いているユーザー数を取得するには、UBound 関数 を使用します。
      (例)アクティブなブックを開いているユーザーの数
        UBound ( ActiveWorkbook.UserStatus )
読み取り専用で開いたブックの UserStatus プロパティを取得しようとするとエラーが発生します。
- object ・・・ 対象となる Workbook オブジェクトを指定します。
 - index1 ・・・ 各ユーザーを示すインデックス値を指定します( 1 から始まる 数値)。
 - index2 ・・・ 1 から 3 の整数値を指定します。1 を指定すると ユーザー名、2 を指定すると ユーザーがブックを最後に開いた日付・時刻、3 を指定すると ファイルの種類 を取得することができます。また、3 を指定した場合、ファイルの種類が 排他 であれば、1 を、共有 であれば、2 を返します。
 
ブックを開いているユーザー数を取得するには、UBound 関数 を使用します。
      (例)アクティブなブックを開いているユーザーの数
        UBound ( ActiveWorkbook.UserStatus )
読み取り専用で開いたブックの UserStatus プロパティを取得しようとするとエラーが発生します。
UserStatus プロパティ 使用例
サンプルVBAソース
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39  | 
						'共有ファイルを開いているユーザーの情報を取得する Sub Sample_UserStatus()     Dim FileName As String     Dim w As Workbook     Dim str As String     Dim i As Integer     Dim file As String     Dim users     '共有ファイルを開く     FileName = "C:\Documents\test01.xlsx"     Set w = Workbooks.Open(FileName)     users = w.UserStatus     'ユーザー情報取得     For i = 1 To UBound(users)         If users(i, 3) = 1 Then             file = "排他"         Else             file = "共有"         End If         str = str & "【" & i & "】" & vbCrLf & _               "ユーザー名" & vbTab & ":" & users(i, 1) & vbCrLf & _               "開いた日付" & vbTab & ":" & users(i, 2) & vbCrLf & _               "種   類" & vbTab & ":" & file & vbCrLf     Next i     MsgBox str     w.Close     Set w = Nothing End Sub  |