Home » FSO・FileSystemObjectの使い方 » DateCreatedが使えない

「datecreated 使えない vba」
「DateCreated メソッドがない VBA」
といった検索キーワードで時折アクセスがあります。

Scriptingライブラリの、FileオブジェクトやFolderオブジェクトが持つDateCreatedプロパティを使えるようにするには、

どうすればいいのかを探していた方による検索かな、と想像しています。

[スポンサードリンク]

File.DateCreatedプロパティを使ったサンプル

以下のようなSubプロシージャを実行しようとしたものの、
「ユーザー定義型は定義されていません。」
コンパイルエラーが発生したのだろうと考ています。

Sub DateCreatedプロパティを利用する()
 Dim fso As Scripting.FileSystemObject
 Set fso = New Scripting.FileSystemObject

 Dim f As Scripting.File
 Set f = fso.GetFile("C:\temp\sample.xlsx")

 MsgBox f.DateCreated

End Sub

Cドライブtempフォルダーにsample.xlsxファイルがある状態で、上記のSubプロシージャを実行すると、作成日時がメッセージボックスに表示されるはずです。

「datecreated 使えない vba」
「DateCreated メソッドがない VBA」
と検索なさった方は、こういったコードがコンパイルエラーとなり、実行できなかったのだろうと考えています。

DateCreatedプロパティを使えるようにする

主な解決方法は以下の2つが考えられます。

  • Microsoft Scripting Runtimeへ参照設定を行う
  • CreateObject関数を使ったコードに変更する

Microsoft Scripting Runtimeへ参照設定を行う

上記のSubプロシージャを含むファイルでVBEを表示し、メニュー[ツール]-[参照設定]から[参照設定]ダイアログを表示して、「Microsoft Scripting Runtime」チェックボックスをOnにしてください。

CreateObject関数を使ったコードに変更する

参照設定ができない場合は、コードを変更しましょう。

先のSubプロシージャで、最初の3行を、以下のように修正すれば、実行できるようになるはずです。

  Dim fso As Object
  Set fso = CreateObject("Scripting.FileSystemObject")

  Dim f As Object

オブジェクト変数fsoを、Scripting.FileSystemObjectオブジェクト型での宣言から、
  Dim fso As Scripting.FileSystemObject
総称オブジェクト型への変数に変更し、
  Dim fso As Object

FileSystemObjectオブジェクトへの参照取得をNewキーワードを使った取得から、
  Set fso = New Scripting.FileSystemObject
CreateObject関数を使ったコードへ変更し、
  Set fso = CreateObject("Scripting.FileSystemObject")

オブジェクト変数fを、Scripting.Fileオブジェクト型での宣言から、
  Dim f As Scripting.File
総称オブジェクト型への変数に変更しています。
  Dim f As Object

最終更新日時:2020-10-08 19:56

[スポンサードリンク]

Home » FSO・FileSystemObjectの使い方 » DateCreatedが使えない

「FSO・FileSystemObjectの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.