エクセルVBAで使うコードの備忘録。VBAで指定したファイルのサイズを取得するコード。ファイルシステムオブジェクトを使ってファイルオブジェクトのプロパティから取得します。ファイルの「作成時刻」、「最終アクセス時刻」、「最終更新時刻」を取得する方法について。
なお、サンプルコードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。
作成時刻を取得する
ウィンドウズのファイルやフォルダに関連する情報を扱う場合は、ファイルシステムオブジェクトを使用します。ファイルシステムオブジェクトのGetFileメソッドに引数としてファイルのパスを与えると、ファイルの情報を格納したファイルオブジェクトを取得することができます。このファイルオブジェクトにファイル作成時刻の情報が含まれるので、DateCreatedプロパティにアクセスして情報を取得します。
Public Sub GetFileCreatedDate()
'--- 作成時刻を取得したいファイルのパス ---'
Dim filePath As String
filePath = "[ファイルのパス]"
'--- ファイルシステムオブジェクト ---'
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
'--- サイズを格納する ---'
Dim dateCreated As Date
dateCreated = fso.GetFile(filePath).DateCreated
End Sub
最終アクセス時刻を取得する
作成時刻を取得する場合と手順はほとんど同じです。ファイルオブジェクトを取得するところまでは同じで、情報を取得するのにアクセスするプロパティが変わるだけになります。最終アクセス時刻を取得するには「DateLastAccessed」プロパティを使用します。
Public Sub GetFileLastAccessedDate()
'--- 作成時刻を取得したいファイルのパス ---'
Dim filePath As String
filePath = "[ファイルのパス]"
'--- ファイルシステムオブジェクト ---'
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
'--- サイズを格納する ---'
Dim dateCreated As Date
dateCreated = fso.GetFile(filePath).DateLastAccessed
End Sub
最終更新時刻を取得する
こちらも使用するプロパティが異なるだけです。最終更新時刻を取得するには「DateLastModified」プロパティを使用します。
Public Sub GetFileLastModifiedDate()
'--- 作成時刻を取得したいファイルのパス ---'
Dim filePath As String
filePath = "[ファイルのパス]"
'--- ファイルシステムオブジェクト ---'
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
'--- サイズを格納する ---'
Dim dateCreated As Date
dateCreated = fso.GetFile(filePath).DateLastModified
End Sub