• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelでの最終更新時刻表示)

Excelでの最終更新時刻表示

このQ&Aのポイント
  • 質問文章全体の100文字程度の要約文を作成
  • Excelファイルの読取専用時に最終更新時刻を表示する方法についての質問
  • VBAを使用して保存時に現在時刻をセルに更新することが可能かどうかについての調査

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

残念ながらブック(ファイル)の最終保存日時(最終更新日時)を取得するワークシート関数はないですね。 しかし、VBAでユーザー定義関数を作ってしまえば、ワークシート上にそのファイルの最終保存日時を表示させることが可能になります。 標準モジュールに以下のコードを貼り付け、最終更新日時を表示させたいセルで =LastSaveTime() と入力してください。そのままではシリアル値が表示されるので、[セルの書式設定]でご希望の時刻表示に設定をしてください。 Function LastSaveTime() LastSaveTime = ThisWorkbook.BuiltinDocumentProperties("Last save time").Value End Function なお、ファイル単位でマクロを強制無効にしたり強制有効にすることは出来ません。あくまで各端末のセキュリティ設定によります。 あるいはマクロは使わずに、ショートカットキーにより時刻をダイレクトに入力することが可能です。 [Ctrl] + [;] … 現在の日付を入力 [Ctrl] + [:] … 現在の時刻を入力 参考まで。

sanakazu
質問者

お礼

的確なアドバイスをありがとうございます、非常にスマートですね。以下のような力技で対処しましたが、こちらのほうがスッキリとしているので有難いです。 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 ちなみに読取専用時で、ファイルメニューの「上書き保存」「別名保存」を使用不可にはできないのでしょうか?そうすれば、複製ファイルを作られなくってうれしいのですが・・・。

その他の回答 (3)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

何度もすみません。merlionXXです。 先ほど(No3)のコードにくわえ Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.Saved = True End Sub も入れておくと、終了時に「保存しますか?」と聞いてこなくなるので読取専用ファイルを別名保存させたくない場合には便利かと思います。

sanakazu
質問者

お礼

お礼が遅くなってすみませんでした、しばらくWebへ接続できない環境でしたので・・・。 今回は目的ファイルの共有を見合わせたため、このコードは次回の参考にさせていただきます。丁寧な解説をありがとうございました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答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

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.1

こんにちは 難しいですね。どうやっても誤操作されたらお釈迦ですから。 更新時のみファイルを保存するという運用が確実に出来るなら、マクロを使うやり方で、OSから最終更新日時を得る方法がある話しを聞いたことがあります。 確かFileSystemObjectのFileオブジェクトでプロパティDateLastModified で出来ると。 でも、私は使ったことがありませんので詳細は判りません。 このメッセージでお判りになる方がいらっしゃったらフォローお願いいたします。

sanakazu
質問者

お礼

アドバイスをありがとうございます。 別手段で最終更新時を取得させることはできるのですが、保存時に難があります。さて困りましたね・・・。

関連するQ&A