| 
    
     |  | すみません。間違い訂正。 コメントアウトしている部分が不完全でした。
 >'If IsEmpty(MyName) Then .Sheets("sheet1").Range("A1").Value
 >'If IsEmpty(TmpName) Then .Sheets("sheet1").Range("A2").Value
 'If Len(MyName) = 0 Then MyName = .Sheets("sheet1").Range("A1").Value
 'If Len(TmpName) = 0 Then TmpName = .Sheets("sheet1").Range("A2").Value
 最初からセルに書き込む方式にすれば、書き方も変わってくるとは思いますが...
 
 そして、また蛇足の提案ですが、
 『出来ればこのファイル一つでやりたい』点に拘られない場合の代案として、
 経過ファイルを使う方法ですが、(仮にprebook.xls、メインファイル名はmainbook.xls)
 
 prebookのThisWorkbookモジュールに
 
 Private Sub Workbook_Open()
 Const mainbk As String = "\\pc1\data\mainbook.xls" '仮
 Dim msg As String
 Application.ScreenUpdating = False
 Application.DisplayAlerts = False
 'Notify…編集可能通知が必要な場合、True
 With Workbooks.Open(Filename:=mainbk, Notify:=False)
 Application.DisplayAlerts = True
 If .ReadOnly Then
 msg = .Sheets("sheet1").Range("a1").Value
 .Close False
 Else
 .Sheets("sheet1").Range("a1").Value = Application.UserName
 .Save
 End If
 End With
 Application.ScreenUpdating = True
 If Len(msg) > 0 Then MsgBox msg & " is using"
 ThisWorkbook.Close False
 End Sub
 
 mainbookの標準モジュールに
 
 Sub auto_open()
 With ThisWorkbook
 .Sheets("sheet1").Range("a1").Value = Application.UserName
 .Save
 End With
 End Sub
 
 現在使用中のユーザーをセルに書き込んでいるため、Open直後にSaveします。
 レスポンスが悪ければ別途txtファイルを用意したほうがいいかもしれません。
 prebook.xlsを非表示にし、各ユーザーにはprebookの名前のみ伝えておけば
 ユーザーサイドでは2つ目のファイルを意識する事なく運用できる気がするのです。
 
 #もっとも、既定のメッセージではなく、あえてオリジナルのメッセージに拘られる理由は、
 #なんでしょうね。運用の詳細が不明なので何とも言えませんが、
 #労多くして益少なしという事にならなければ良いのですが...
 
 |  |