
制限をかけたExcelファイルの、あるセルにNOW関数で開いた時刻を表示させていますが、読取専用で開いてもその時点の時刻が表示されてしまいます。最終更新時刻が表示されていると望ましいのですが、VBAでクローズ時の時刻を更新するような手立てしかないでしょうか?(それすらできるかどうかは不明ですが・・・)
1. 保存時にのみ現在時刻をセルに更新することが可能か?
2. 1がVBAで可能とした場合、読取専用では強制的にマクロ無効とできるか?
要は、読取専用で最終更新時刻が分かるようにしたいのです。NOW関数だと開いた時刻となってしまい、いつが最終更新か分からず、更新時に手入力で時刻更新だとミスもあるだろうから自動でできないか?ということです。
VBAにすると知識の浅い者から、開いた場合のセキュリティ警告画面で質問されることも考えられるので強制無効が可能ならばベター、それ以前に関数で対応できればベストだと思われます。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
残念ながらブック(ファイル)の最終保存日時(最終更新日時)を取得するワークシート関数はないですね。
しかし、VBAでユーザー定義関数を作ってしまえば、ワークシート上にそのファイルの最終保存日時を表示させることが可能になります。
標準モジュールに以下のコードを貼り付け、最終更新日時を表示させたいセルで
=LastSaveTime()
と入力してください。そのままではシリアル値が表示されるので、[セルの書式設定]でご希望の時刻表示に設定をしてください。
Function LastSaveTime()
LastSaveTime = ThisWorkbook.BuiltinDocumentProperties("Last save time").Value
End Function
なお、ファイル単位でマクロを強制無効にしたり強制有効にすることは出来ません。あくまで各端末のセキュリティ設定によります。
あるいはマクロは使わずに、ショートカットキーにより時刻をダイレクトに入力することが可能です。
[Ctrl] + [;] … 現在の日付を入力
[Ctrl] + [:] … 現在の時刻を入力
参考まで。
的確なアドバイスをありがとうございます、非常にスマートですね。以下のような力技で対処しましたが、こちらのほうがスッキリとしているので有難いです。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error GoTo now_error
now1 = Cells(1, 1).Value2
now2 = Cells(1, 6).Value2
If now2 > now1 Then
Cells(1, 1).Value2 = now2
Else
Exit Sub
End If
now_error:
Exit Sub
End Sub
ちなみに読取専用時で、ファイルメニューの「上書き保存」「別名保存」を使用不可にはできないのでしょうか?そうすれば、複製ファイルを作られなくってうれしいのですが・・・。
No.4
- 回答日時:
何度もすみません。
merlionXXです。先ほど(No3)のコードにくわえ
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub
も入れておくと、終了時に「保存しますか?」と聞いてこなくなるので読取専用ファイルを別名保存させたくない場合には便利かと思います。
お礼が遅くなってすみませんでした、しばらくWebへ接続できない環境でしたので・・・。
今回は目的ファイルの共有を見合わせたため、このコードは次回の参考にさせていただきます。丁寧な解説をありがとうございました。
No.3
- 回答日時:
merlionXXです。
> ちなみに読取専用時で、ファイルメニューの「上書き保存」「別名保存」を使用不可にはできないのでしょうか?そうすれば
ファイルが読取専用の場合、上書き保存はもともとできませんから「別名保存」を不可にします。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ThisWorkbook.ReadOnly Then
Cancel = True
MsgBox "保存できません!", vbCritical, "Sorry!!"
End If
End Sub
No.1
- 回答日時:
こんにちは
難しいですね。どうやっても誤操作されたらお釈迦ですから。
更新時のみファイルを保存するという運用が確実に出来るなら、マクロを使うやり方で、OSから最終更新日時を得る方法がある話しを聞いたことがあります。
確かFileSystemObjectのFileオブジェクトでプロパティDateLastModified で出来ると。
でも、私は使ったことがありませんので詳細は判りません。
このメッセージでお判りになる方がいらっしゃったらフォローお願いいたします。
アドバイスをありがとうございます。
別手段で最終更新時を取得させることはできるのですが、保存時に難があります。さて困りましたね・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) 会社PCのメールが更新されない 6 2023/07/17 23:19
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Dropbox 画像ファイルのコピー先での日付の同期について 1 2022/06/13 12:02
- Visual Basic(VBA) ユーザーフォーム上に現在日時と時刻を表示させていますがフォームを実行すると時間が更新されません。それ 2 2023/02/21 22:28
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Excel(エクセル) エクセルで計算結果が0でないときのみセルを更新したい 4 2022/07/30 11:58
- Excel(エクセル) 出退勤管理の遅刻・早退時間について 3 2023/08/10 15:33
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Excel(エクセル) 至急 Excel日付表示設定教えてください Excelの日付表示ですが、他者から送られてくるExce 6 2023/02/03 11:01
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メール添付されているファイル...
-
エクセルを上書き保存したのに...
-
エクセル文書を保存したらメモ...
-
エクセル2019でPDFファイル名に...
-
エクセルでVBAを使用して1分毎...
-
エクセル2007で互換モードで上...
-
EXCELで同一名のファイルがある...
-
excelとCSVについて質問です! ...
-
エクセルでCSVファイルとして保...
-
エクセルで「ファイル保存名」...
-
Excelでの最終更新時刻表示
-
いきなりPDFでPDFファイルを開...
-
Excelのデーターが一瞬で消えた。
-
エクセルで、ファイル内に入力...
-
ピボットテーブルの更新ができない
-
「名前を付けて保存」ができな...
-
エクセル 更新していないのに...
-
エクセル保存時に覚えのないメ...
-
エクセル表のCSV化ができない
-
エクセル・マクロ(VBA)で、指定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
いきなりPDFでPDFファイルを開...
-
エクセル文書を保存したらメモ...
-
エクセルでCSVファイルとして保...
-
Excel画面の自動更新 Excelファ...
-
エクセルでVBAを使用して1分毎...
-
Illustratorファイルに読み取り...
-
メール添付されているファイル...
-
エクセル・マクロ(VBA)で、指定...
-
「変更を保存しますか?」と聞...
-
ピボットテーブルの更新ができない
-
マクロ VBA ファイル名を連番...
-
開いてるファイル(エクセル等)...
-
エクセル 更新していないのに...
-
エクセル表のCSV化ができない
-
マクロVBA特定フォルダーに次々...
-
メールソフト「サンダーバード...
-
Excelの読み取り専用について質...
-
csvファイルを上書き保存でカン...
-
エクセルがwindows終了時に未保...
おすすめ情報