質問

エクセルの保存した日を自動でセル内に表示は出来ますか?
NOWを使うと今の日付は表示できますが
保存した日を自動で表示させたいです。
宜しくお願い致します。

通報する

回答 (5件)

はじめまして benitier59 さん
回答者のみなさまはかなり丁寧に教えていると思います。
私も実際に本当に動くのかこの関数を張ってみたら確かに正しいシリアル値が入っていました。
そうなると問題があるとしたらExcelのヴァージョンが古いか質問者に解決する意思がないか質問者の作業ミスです。
手順をできるだけ細かく説明しますのでもう一度チャレンジしてください。






01.試すだけなので新規ブックを作成してください。
【 右クリック > 新規作成(W) > microsft Excel ワークシート 】
又は(右クリックが拡張されていない場合)
【エクセルを普通に開き好きなところに"保存"してください。】

はい。エクセルブックは作成できました。
完成したファイルを開いていない場合は開いてください。





02.マクロのセキュリティを設定します(試すだけなので低)
エクセルを開くと丈上部にメニューがあります。
【ツール(T) > マクロ(M) > セキュリティ(S)】

すると「セキュリティ」というダイアログが表示されます。
【「セキュリティレベル」タブを選択し > 低(L)(推奨しません) > OKボタンを押す】

はい。これでセキュリティではじかれることは無くなりました。
一度ブックを閉じて再度開いてください。
(この作業はセキュリティレベルを反映させる作業で絶対必要です)





03.VBEを開きます
項番2のように上部にあるエクセルメニューから
【ツール(T) > マクロ(M) > Visual Basic Editor(V)】

はい。VBEが開きました。





04.標準モジュールを作成する
VBEの上部メニューより
【挿入(I) > 標準モジュール(M)】

はい。標準モジュールが追加されました。
下記のようにプロジェクトが表示されていればOKです。
(プロジェクトはデフォルトでは左上らへんに表示されます)

プロジェクト - VBAProject
-■VBAProject(Book1)
 -□MicrosoftExcelObject
 │├Sheet1(Sheet1)
 │├Sheet2(Sheet2)
 │├Sheet3(Sheet3)
 │└ThisWorkbook
 -□標準モジュール
  └Module1





05.標準モジュールにデータを入力する
プロジェクトの画面より
Module1 をダブルクリックしてください。
そこへ


Public Function LastSaveTime() As Variant '←変更箇所
Application.Volatile
LastSaveTime = ThisWorkbook.BuiltinDocumentProperties("Last save time").Value
End Function


を書き込みます。






06.エクセルにシリアル値を表示させよう
エクセルを表示
A1セルに以下を入力してください。

=LastSaveTime()

入力しましたか?「39722.46022」一致はしないでしょうがこのような数値の羅列の値
が表示されれば成功です。





07.書式の設定を変更しよう
【A1セルを選択 > 右クリック > セルの書式設定(F) > 】

「セルの書式設定」ダイアログが表示されます
「表示形式」タブを選択します
タブ下「分類(C):」項目は「日付」
分類右「種類(T):」項目は「2001/3/14 13:30」
この様に設定します。

もし「#######」などになっていればセル幅を調整してください
yyyy/mm/dd hh:mm この形式で日付が表示されていればOKです
一度保存して一度閉じて再度開きなおしてください(必要な作業です)。





08.確認する
開き直すといま保存した時間が表示されているはずです。
A1以外のセルを変更などしてくださいA1セルが自動で最終更新日が更新されます。









さてこの通り作業してもし駄目な場合、何処で駄目になったか言ってください。
または、何処でわからなくなったのか言ってください。

この回答へのお礼

出来ました!!!
ご丁寧なご説明有難うございます。
標準モジュールでなくSheet1に書き込んでいました。
本当に有難うございました。

この回答への補足

有難うございます。
違う質問にも答えていただければ嬉しいです。

NO3に対する補足に関してです。

指定したページの説明文をちゃんと読んでください
---------------------------------
上記のコードをVBE(Visual Basic Editor)を起動して標準モジュールに貼り付ければ、通常のワークシート関数と同様に使えるようになりますから、最終更新日時を表示させたいセルで「=LastSaveTime()」と入力してください。そのままではシリアル値が表示されるので、[セルの書式設定]ダイアログで適切な表示設定を行ってください。
---------------------------------

マクロセキュリティの設定が正しいのならば、この通りにやったらちゃんと動作しました。

恐らく1カ所無視しているのではないかと推測されますが…

この回答への補足

出来ました!!!
本当に有難うございました。

No1の補足に関しての返答です

動かないってのがどういう状態か判らないので推測ですが、おそらくマクロ(VBA)のセキュリティである可能性が高いです。
Excel2003であれば、メニューのツール→マクロ→セキュリティで、中に設定しないとマクロそのものが動作しません。

低はセキュリティ上お勧めしません。


余談
「動かない」ってのは、「正常ではない」という非常に曖昧な表現なので、回答側も上記のような精度の低い予測しかできません。

この回答への補足

NO2の方法も試したのですがダメです。。。
#NAME?と表示されています。
ちなみにシートのタブを右クリックしてコードを表示して
そこに貼り付けるだけですよね?
ちなみにド素人です。

こんにちは。

#1さんがご紹介されたサイトに書かれているマクロ(VBA)を下記のように変更してみて下さい。
※関数名の宣言の最初に "Public"、最後に "As Variant" を付加します。

'=================================================
'
' 本エクセルブックの更新日時取得
'
Public Function LastSaveTime() As Variant '←変更箇所
Application.Volatile
LastSaveTime = ThisWorkbook.BuiltinDocumentProperties("Last save time").Value
End Function
'=================================================

また、既に設定されているとは思いますが、この関数を利用するセルは、
 =LastSaveTime()
と入力して、かつ「セルの書式設定」の「表示形式」の設定で
 【分類】を、「日付」、
 【種類】を、ご希望の「日付、時刻」の表示タイプ
に設定してみて下さい。

これで上手くいかなかった場合は、御免なさい。

この回答への補足

NO2の方法も試したのですがダメです。。。
#NAME?と表示されています。
ちなみにシートのタブを右クリックしてコードを表示して
そこに貼り付けるだけですよね?
ちなみにド素人です。

以下のページに記載がありました。

インストラクターのネタ帳より

http://www.relief.jp/itnote/archives/000271.php

Excelで凝った事しようと考えたら必見のサイト。

私も何度もお世話になり、頭が上がりません。

この回答への補足

なるほど。
VBEを使うのですね。
ここまで来ると難しいですね~
上記のサイト通りにやったのですが出来ません。。
なぜでしょうか?
書式設定もしたのですが???

このQ&Aは役に立ちましたか?5 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

注目の記事

モバイルPCを活用するために 初心者に贈るWindowsの各OSまとめ

モバイルパソコンとは、持ち運べるノートパソコンの事です。近年、家だけではなく外出先でもインターネットを使いたいという方が増えています。ファーストフード店で、サラリーマンがノートパソコンを使ってい...


新しく質問する

このカテゴリで人気のQ&Aランキング