多数のユーザーが同じブックを読み取り専用で表示している間に、そのブックにポップアップで通知することができれば便利だと思っていましたワークブックが更新されるたびに画面が表示されます。そうすれば、彼らは彼らが見ているものをすぐに知ることができなくなる可能性があります。ありがとうExcel VBAはすべての読み取り専用閲覧者に通知します
答えて
ここでは、あなたが望むことをするための狡猾なやり方があります。考えは、FileDateTime(ThisWorkbook.FullName)
、ブックのファイルが最後に変更された日付を取得することです。最初にブックを開くときにこの日付を取得し、ワークブックのセルに格納してから、FileDateTime(ThisWorkbook.FullName)
が保存された日付と異なる日付を返すかどうか定期的にチェックします。
この例では、日付をSheet1.Range("A1")
に保存していますが、隠しシートやどこにでも保存できます。あなたのThisWorkbook
モジュールで
、次のようにWorkbook_Open
イベントを定義:コードモジュールで
Private Sub Workbook_Open()
userNotified = False
'Store date last modified.
dateLastModifiedWhenOpened = FileDateTime(ThisWorkbook.FullName)
'How often will we check back?
runTimeInterval = TimeValue("00:00:05")
'Set timer for next check.
Application.OnTime Now + runTimeInterval, _
"CheckWhetherThisWorkbookFileModifiedSinceOpening"
End Sub
を:
Public dateLastModifiedWhenOpened As Date
Public nextRunTime As Date
Public runTimeInterval As Date
Public userNotified As Boolean
Sub CheckWhetherThisWorkbookFileModifiedSinceOpening()
If Not FileDateTime(ThisWorkbook.FullName) = dateLastModifiedWhenOpened Then
MsgBox "This workbook file has been modified since you opened it." _
& vbCrLf & "Modified at: " & FileDateTime(ThisWorkbook.FullName)
userNotified = True
Else
'Set timer for next check.
nextRunTime = Now + runTimeInterval
Application.OnTime nextRunTime, _
"CheckWhetherThisWorkbookFileModifiedSinceOpening"
End If
End Sub
ブックを閉じるときにクリーンアップするために、良いアイデアかもしれません。あなたのThisWorkbook
モジュールで:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not userNotified Then
'Cancel the next check.
Application.OnTime nextRunTime, _
"CheckWhetherThisWorkbookFileModifiedSinceOpening", , False
End If
End Sub
レビューリボン、共有ブックでブックを共有できます。
詳細オプションでは、「変更を更新」を5分に設定できます。あなたの場合は、おそらく "ただ他のユーザーの変更を参照してください"したいです。
それは長く複雑な話ですが、私は共有ブックを使用することはできません。要するに、このボードは本質的に電子かんばんであり、「Share Workbook」はシェイプへの変更のマージをサポートしていないからです。 – Wes
- 1. のAptana Studioの3 - 閲覧/読み取り専用モード
- 2. Excel VBA 2007ブックを読み取り専用モードで保存します
- 3. 読み取り専用自動対(読み取り専用)プロパティ
- 4. アクティブなログファイルを閲覧するためのWindowsでのファイルアクセス保護の読み取り専用
- 5. Java - jxl APIを使用してExcelブックを「読み取り専用」にする
- 6. 読み取り専用保護でExcelファイルを開くには?
- 7. CurrentCulture.DateTimeFormat.LongTimePattern読み取り専用
- 8. 読み取り専用アソシエーション
- 9. 読み取り専用テキストボックス
- 10. 読み取り専用プロパティ
- 11. ソーシャルネットワークの通知用に読み取り/読み取り機能を実装するアイデアはありますか?
- 12. Excel VBA同じブックを2回開きますが、1つのインスタンスが読み取り専用です
- 13. Excel VBAを使用してチャートに値を読み取る
- 14. は、Delphi ClientDataSetの読み取り専用
- 15. Googleのフォームは、読み取り専用
- 16. VBAにアクセス:閲覧したファイルのパスを返す方法
- 17. フォーム内のすべてのフィールドを読み取り専用にする
- 18. 読み取り専用コンボボックスですか?
- 19. MVCですべてのフォームフィールドを読み取り専用にする
- 20. にjava.io.IOException:読み取り専用ファイルシステム
- 21. すべてのコントロールをボタンで読み取り専用に切り替えます。WinFormでクリックします。
- 22. 読み取り専用テーブルのすべての列にインデックスを付ける
- 23. Excelが別のユーザーによって変更されています。読み取り専用として開く
- 24. サイトを閲覧しているすべての人に通知を表示する
- 25. Djangoモデルを読み取り専用にしますか?
- 26. ds.record.getRecord( '...')は読み取り専用にできますか?
- 27. 読み取り専用テキストフィールドにエラーがあります
- 28. 読み取り専用DBアクセスのトランザクション?
- 29. ComboBoxの読み取り専用アイテム
- 30. SharePointデータシートビューの読み取り専用カスタムフィールド
私は助けに感謝しますが、私はこれをしないことにしました。私はちょうどそれがあまりにも複雑であることを発見ちょっとしたトリック(ブックを開いたときにタイムスタンプを付け、最後に保存したときにチェックする)を使って、開いた後に変更された場合にユーザーがドキュメントに変更を加えないようにすることを決めました。それは本当に私の元の質問に答えることはありませんが、それは私の問題を解決します。だから私はこのスレッドを閉じたと思う。 – Wes
+1正直言って、上に示唆された方法は複雑ではなく、私はこれよりも簡単な方法は考えられません。 –
これは他の人が探している回答かもしれないので、私はそれを受け入れます。 – Wes