制限をかけた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も見ています
-
つい集めてしまうものはなんですか?
人間誰もは1つ「やたらこればかり集めてしまう」というものがあるもの。 あなたにとって、つい集めてしまうものはなんですか?
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
とっておきの手土産を教えて
お呼ばれの時や、ちょっとした頂き物のお礼にと何かと必要なのに 自分のセレクトだとついマンネリ化してしまう手土産。 ¥5,000以内で手土産を用意するとしたらあなたは何を用意しますか??
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
Excelで更新日時と更新者を表示させる
Excel(エクセル)
-
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
excelでシート毎の最終更新日を所定の場所に表示
Excel(エクセル)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル文書を保存したらメモ...
-
エクセルを上書き保存したのに...
-
メール添付されているファイル...
-
マクロ VBA ファイル名を連番...
-
いきなりPDFでPDFファイルを開...
-
保存せずに閉じてしまったエク...
-
エクセルでVBAを使用して1分毎...
-
エクセルでCSVファイルとして保...
-
ピボットテーブルの更新ができない
-
エクセルの保存をするときのタ...
-
エクセルが「名前を付けて保存...
-
エクセル 連動して自動で開く
-
エクセルで作った書類の作成者...
-
メールソフト「サンダーバード...
-
セルの塗りつぶしの色を好きな...
-
Excel画面の自動更新 Excelファ...
-
エクセル表のCSV化ができない
-
エクセル2019でPDFファイル名に...
-
Excelの読み取り専用について質...
-
行と列を固定して表示するには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル文書を保存したらメモ...
-
エクセルを上書き保存したのに...
-
いきなりPDFでPDFファイルを開...
-
メール添付されているファイル...
-
Excel画面の自動更新 Excelファ...
-
エクセルでVBAを使用して1分毎...
-
エクセルでCSVファイルとして保...
-
開いてるファイル(エクセル等)...
-
マクロ VBA ファイル名を連番...
-
ピボットテーブルの更新ができない
-
Illustratorファイルに読み取り...
-
エクセル・マクロ(VBA)で、指定...
-
メールソフト「サンダーバード...
-
「変更を保存しますか?」と聞...
-
エクセルの共有ファイルで、保...
-
csvファイルを上書き保存でカン...
-
エクセル表のCSV化ができない
-
行と列を固定して表示するには
-
エクセル保存時に覚えのないメ...
-
マクロVBA特定フォルダーに次々...
おすすめ情報