エクセルVBAでファイルの作成日時を取得する方法

このQ&Aのポイント
  • エクセル2000のファイルには、「ファイルの情報」と「詳細情報」という2つのタブがあります。両方には「作成日時」と「更新日時」がありますが、試してみると更新日時は同じです。
  • 作成日時について、詳細情報にあるのはそのエクセルを初めて作成した日時であり、ファイルの情報にあるのは名前を付けて保存した日時のようです。
  • VBAでファイルの作成日時を取得する場合、ActiveWorkbook.BuiltinDocumentProperties(11).Valueを使用します。ただし、これは詳細情報にある作成日時を取得します。ファイルの情報にある作成日時を取得する方法はないようです。
回答を見る
  • ベストアンサー

エクセルVBAで、ファイルの情報の「作成日時」取得

エクセル2000です。 メニューからファイル、プロパティでダイアログを呼び出すと、タブが「ファイルの情報」、「ファイルの概要」、「詳細情報」、「ファイル構成」、「ユーザー設定」と並んでいます。 そのうちの「ファイルの情報」タブと、「詳細情報」タブの両方に「作成日時」と「更新日時」があります。 同じ「作成日時」がなぜ二つあるのか、どう違うのが、試してみると更新日時はどちらも同じですが、作成日時が「詳細情報」はそのエクセルを初めて作成した日時、「ファイルの情報」は、そのエクセルに名前を付けて保存した日時のようです。 上記の理解で合っていますか? 次にそのエクセルBOOKに記述したVBAで作成日時を取得しようとした場合、 ActiveWorkbook.BuiltinDocumentProperties(11).Value で取得できる作成日時は、「詳細情報」にあるほうの日時のようですが、「ファイルの情報」にある作成日時(名前を付けて保存した日時)をVBAで取得するにはどうしたらよいのでしょうか? なにとぞよろしくお願い申し上げます。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

FileSystemObjectを使って作成日時を取得したら、「ファイルの情報」の作成日時が取れました Sub Test() Dim FSO Dim fullPath as String   fullPath = "D:\Temp\abc.xls"   Set FSO = CreateObject("Scripting.FileSystemObject")   MsgBox FSO.GetFile(fullPath).DateCreated End Sub

merlionXX
質問者

お礼

zap35さま、いつも有難うございます。 無事取得できました。 「ファイルの情報」の作成日時と、「詳細情報」の作成日時との違いは、上記の解釈で正しいでしょうか?

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

私もちょっと興味があったので試してしました。  12:00 ブックを新規に開く  12:05 ブックを名前をつけて保存 この状態で  ファイルの情報 作成日時 12:05  詳細情報    作成日時 12:00 になりました。更に  12:10 ブックを別名で登録 すると  ファイルの情報 作成日時 12:10  詳細情報    作成日時 12:00 です。 ちょっとだけ試した結果では  ファイルの情報 作成日時 → そのファイルが最初に書き込まれた日時  詳細情報    作成日時 → ブックを新規作成した日時で、別ファイル名にしても引き継がれる ような感じですね。merlionXXさんの見解と同じです。

merlionXX
質問者

お礼

わざわざ試していただき、ありがとうございました。 これでネットからダウンロードしたエクセルファイルのダウンロード日時が特定できます。(ファイルの情報の作成日時) 助かりました。

関連するQ&A

  • エクセルVBAでBOOKのダウンロード日時を取得したいのです。

    社内のイントラネットに貼り付けたエクセルのBOOKを、社員が各自の端末にダウンロードした日時を、そのダウンロードされたBOOKのマクロで取得したいのです。 ためしに、以下のようにしてみました。 Sub test01() MsgBox "FileDateTime:" & FileDateTime(ThisWorkbook.FullName) End Sub これでは、常にそのBOOKを起動した日時が取得されるだけでした。 Sub test02() MsgBox "作成者は:" & ActiveWorkbook.BuiltinDocumentProperties(3).Value _ & vbCrLf & "最終更新者は:" & ActiveWorkbook.BuiltinDocumentProperties(7).Value _ & vbCrLf & "作成日時は:" & ActiveWorkbook.BuiltinDocumentProperties(11).Value _ & vbCrLf & "更新日時は:" & ActiveWorkbook.BuiltinDocumentProperties(12).Value End Sub これは、イントラに貼り付けたオリジナルのBOOKの作成日時、更新日時等のデータでした。 ダウンロード日時を取得することはできないのでしょうか? やりたいことは、改定等があった場合、いつまでも古いバージョンを使いつづけられないようにダウンロード日から例えば30日間を使用期限に設定するというようなことです。

  • ファイルの作成日時を取得するにはどうすれば?

    エクセル2003です。 ファイルの作成日時を取得するにはどうすればいいですか? MsgBox FileDateTime(ActiveWorkbook.FullName) を実行すると、更新日時が取得されてしまいます。 FileDateTime 関数のヘルプを見ると、 ----------------------------------- 指定したファイルの作成日時または 最後に修正した日時を示すバリアント型 (内部処理形式 Date の Variant) の値を返します。 ----------------------------------- と書かれていますが、 どうすれば作成日時を取得できるのでしょうか?

  • VBA:ファイルプロパティの一部を取得したい。

    撮った写真の撮影日をファイル名にしようと考えています。カメラはキャノンで、ファイルプロパティの[概要]タブに詳細なプロパティが記述されており、そのなかに[カメラの撮影日]があります。それを取得したいのですがどうすればできるのでしょうか?あくまで撮影日で、作成日時とは違います。ファイルをコピーすると作成日時は変わってしまいあてにならないからです。VBA(エクセル)での操作でしかわからないので、VBA仕様でお答えいただければ助かります。

  • Excel VBA コンテンツの作成日時の取り出し

    Word 2003で作成したファイル(拡張子doc)のプロパティの「詳細」タブに示される「コンテンツの作成日時」をExcel 2003のVBAで取り出すことができません。これまでに、(1)FileDateTime (2)FSOのDateCreated (3)FSOのDateLastModified などを試しましたが、得られたのはいずれもプロパティの「全般」タブの「作成日時」や「更新日時」で、「コンテンツの作成日時」ではありませんでした。対象としているdoc ファイルは、復元ソフトで復元したもので、唯一、「コンテンツの作成日時」だけが、今回、取り出したい、最初にファイルが作成された日時が保存されており、「全般」タブの「作成日時」などは、ファイルを復元した日や操作した日となっています。どうしても「コンテンツの作成日時」を取り出して、ファイル作成日をファイル名に追加し、新しいファイル名にしたいと思っています。よろしくお教えいただきますようお願いいたします。

  • excelの前回保存日時を取得したい

    office2002を使用しています。 VBAでCreateObjectを使用してexceで作成したファイルlのプロパティの作成日、更新日、アクセス日は取得でくるのですが、プロパティ、概要、詳細設定にある前回保存日時を取得したい場合はどうすればよいのでしょうか。 宜しくお願いします。

  • バッチ等で、ファイルの作成日時を変えたいです

    初めての質問です。よろしくお願いします。 バッチファイルなどを使って、フォルダの中にある全部のファイルの 作成日時を、そのファイルの更新日におき変えたいと思っています。 (エクスプローラーのタブで確認できる"作成日時"の事です) 今ファイルの作成日時が、ファイルのコピーによって更新日時より 新しくなってしまいました。検索するソフトが作成日を参照するため どうしても不具合がでてしまいます。 せめて作成日を、同じファイルの更新日と同じものにすれば、 作成日時に近いため何とか運用できるかもしれません。 エクセルはもっていますので、VBAなどでも、もし わかればおねがいします。m(_ _)m

  • EXCEL 関数かVBAでファイル作成日を取得する方法

    エクセルのプロパティ→詳細情報→作成日時で表示される作成日時を取得する方法を教えてください。 ワークシート関数でもVBAでもどちらでもOKです。 よろしくお願いします。

  • フォルダ内ファイルの作成・更新・アクセス日時の取得

    会社で使っているXPパソコンで、或るフォルダ内の全ファイルの「作成日時」、「更新日時」、「アクセス日時」をエクセルで一覧表にしたいと考えています。 会社のパソコンなので勝手にフリーソフトなどをイントールすることは出来ず、既にインストールされているエクセルで何とか出来ないか?と試行錯誤しています。 ネットを彷徨って、どうやら「更新日時」はVBAで取得できそうだと判りましたが、「作成日時」と「アクセス日時」の取得については見付けることが出来ませんでした。 フォルダ内ファイルの「作成日時」、「更新日時」、「アクセス日時」をエクセルで一覧表にする方法について、ご存じの方がいらっしゃればお知恵をお貸し頂けないでしょうか?

  • Excel-VBA コンテンツの作成日時

    ファイル(Excel/WORDなど)のプロパティの詳細の 「コンテンツの作成日時」、「前回保存日時」、「前回印刷日時」 を、VBAで取得/設定する方法を知りたいのですが? サンプルコードを提示していただければ大助かりです。 ご教授よろしくお願いします。

  • ファイルの作成日時

    こんにちは。ファイルの作成日時と更新日時を取得したいのですが、更新日時の取得方法は分かりましたが作成日時の取得方法が分かりません。 よろしくお願いします。 <環境> Windows Server 2003 JDK5.0

    • ベストアンサー
    • Java

専門家に質問してみよう