Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


43104 / 76732 ←次へ | 前へ→

【38685】Re:Excelファイルを誰かが開いているとき...
発言  Ned  - 06/6/8(木) 14:52 -

引用なし
パスワード
   すみません。間違い訂正。
コメントアウトしている部分が不完全でした。
>'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つ目のファイルを意識する事なく運用できる気がするのです。

#もっとも、既定のメッセージではなく、あえてオリジナルのメッセージに拘られる理由は、
#なんでしょうね。運用の詳細が不明なので何とも言えませんが、
#労多くして益少なしという事にならなければ良いのですが...

1 hits

【38514】Excelファイルを誰かが開いているときは開けないようにする件。 kouka 06/6/5(月) 16:12 質問
【38518】Re:Excelファイルを誰かが開いているときは... Kein 06/6/5(月) 17:12 回答
【38534】Re:Excelファイルを誰かが開いているときは... kouka 06/6/6(火) 9:19 発言
【38585】Re:Excelファイルを誰かが開いているときは... kouka 06/6/6(火) 18:27 発言
【38597】Re:Excelファイルを誰かが開いているとき... Ned 06/6/7(水) 0:09 発言
【38598】Re:Excelファイルを誰かが開いているとき... Ned 06/6/7(水) 0:41 発言
【38610】Re:Excelファイルを誰かが開いているとき... Ned 06/6/7(水) 10:50 発言
【38653】Re:Excelファイルを誰かが開いているとき... 漂流民 06/6/7(水) 23:47 発言
【38671】Re:Excelファイルを誰かが開いているとき... Ned 06/6/8(木) 11:09 発言
【38662】Re:Excelファイルを誰かが開いているとき... kouka 06/6/8(木) 9:44 質問
【38665】Re:Excelファイルを誰かが開いているとき... Ned 06/6/8(木) 10:08 発言
【38685】Re:Excelファイルを誰かが開いているとき... Ned 06/6/8(木) 14:52 発言
【38740】Re:Excelファイルを誰かが開いているとき... kouka 06/6/9(金) 11:03 お礼

43104 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free