「datecreated 使えない vba」
「DateCreated メソッドがない VBA」
といった検索キーワードで時折アクセスがあります。
Scriptingライブラリの、FileオブジェクトやFolderオブジェクトが持つDateCreatedプロパティを使えるようにするには、
どうすればいいのかを探していた方による検索かな、と想像しています。
File.DateCreatedプロパティを使ったサンプル
以下のようなSubプロシージャを実行しようとしたものの、
「ユーザー定義型は定義されていません。」
コンパイルエラーが発生したのだろうと考ています。
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 SubCドライブ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行を、以下のように修正すれば、実行できるようになるはずです。
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
- Newer:pandasで棒グラフの色を指定する
- Older:pandasでExcelのワークシート枚数を取得する
Home » FSO・FileSystemObjectの使い方 » DateCreatedが使えない