• ベストアンサー

エクセルの保存した日を自動でセル内に表示は出来ますか?

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

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

  • ベストアンサー
  • argument
  • ベストアンサー率63% (21/33)
回答No.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セルが自動で最終更新日が更新されます。 さてこの通り作業してもし駄目な場合、何処で駄目になったか言ってください。 または、何処でわからなくなったのか言ってください。

benitier59
質問者

お礼

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

benitier59
質問者

補足

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

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • heinell
  • ベストアンサー率35% (420/1172)
回答No.4

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

benitier59
質問者

補足

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

すると、全ての回答が全文表示されます。
  • heinell
  • ベストアンサー率35% (420/1172)
回答No.3

No1の補足に関しての返答です 動かないってのがどういう状態か判らないので推測ですが、おそらくマクロ(VBA)のセキュリティである可能性が高いです。 Excel2003であれば、メニューのツール→マクロ→セキュリティで、中に設定しないとマクロそのものが動作しません。 低はセキュリティ上お勧めしません。 余談 「動かない」ってのは、「正常ではない」という非常に曖昧な表現なので、回答側も上記のような精度の低い予測しかできません。

benitier59
質問者

補足

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

すると、全ての回答が全文表示されます。
noname#144013
noname#144013
回答No.2

こんにちは。 #1さんがご紹介されたサイトに書かれているマクロ(VBA)を下記のように変更してみて下さい。 ※関数名の宣言の最初に "Public"、最後に "As Variant" を付加します。 '================================================= ' ' 本エクセルブックの更新日時取得 ' Public Function LastSaveTime() As Variant '←変更箇所 Application.Volatile LastSaveTime = ThisWorkbook.BuiltinDocumentProperties("Last save time").Value End Function '================================================= また、既に設定されているとは思いますが、この関数を利用するセルは、  =LastSaveTime() と入力して、かつ「セルの書式設定」の「表示形式」の設定で  【分類】を、「日付」、  【種類】を、ご希望の「日付、時刻」の表示タイプ に設定してみて下さい。 これで上手くいかなかった場合は、御免なさい。

benitier59
質問者

補足

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

すると、全ての回答が全文表示されます。
  • heinell
  • ベストアンサー率35% (420/1172)
回答No.1

以下のページに記載がありました。 インストラクターのネタ帳より http://www.relief.jp/itnote/archives/000271.php Excelで凝った事しようと考えたら必見のサイト。 私も何度もお世話になり、頭が上がりません。

参考URL:
http://www.relief.jp/itnote/
benitier59
質問者

補足

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

すると、全ての回答が全文表示されます。

関連するQ&A