VBA|BuiltinDocumentPropertiesを使ってブックを開かないでプロパティを取得する方法

エクセルVBA VBAでフォルダ・ファイルの操作



BuiltinDocumentPropertiesプロパティを使えばエクセルブックのプロパティ(作成者やタイトル、更新日時など)を取得することができます。

今回は、ブックを開かないでプロパティを取得する方法について徹底的に説明していきます。



BuiltinDocumentPropertiesを使ってブックを開かないでプロパティを取得する方法

BuiltinDocumentProperties で取得できるプロパティについて

構文: Workbookオブジェクト. BuiltinDocumentProperties(Index)

引数Indexで指定する、 BuiltinDocumentPropertiesプロパティで取得できる主なプロパティ名は以下の表のとおりです。

プロパティ名 内容
Title タイトル
Subject サブタイトル
Keywords キーワード
Comments コメント
Application Name アプリケーション名
Author 作成者
Last Author 最終更新者
Creation Date 作成日時
Last SaveTime 更新日時
Last Print Date 最終印刷日

ブックを開かないでプロパティを取得する方法

ブックを開かないでプロパティを取得するためのサンプルコードは以下のとおりです。

なお、ブックを複数選択できるようになっているのが特徴です。

Sub プロパティ取得()
    Dim myfile As Variant
    Dim obj As Object
    Dim myLstime() As String
    Dim LStime As String
    
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True  '複数ファイル選択可能にしている
        .Title = "ファイル選択"
        If .Show = 0 Then     '「キャンセル」ボタンをクリックしたら処理を終了する
            Exit Sub
        End If
        i = 0
        For Each myfile In .SelectedItems
            Set obj = GetObject(myfile)    '取得したファイルをオブジェクトとして取得する
            mytime = obj.BuiltinDocumentProperties("Last Save Time") '更新日時を取得する
            LStime = LStime & mytime & vbLf
        Next
    End With

    MsgBox LStime

End Sub

実行すると、ファイル選択ダイアログが開き、複数のファイルを選択できます。

選択したファイルの更新日時をメッセージボックスで表示します。

ファイルを開かないでプロパティを取得するので、かなり高速仕様になっています(笑)

【まとめ】BuiltinDocumentPropertiesを使ってブックを開かないでプロパティを取得する方法

BuiltinDocumentPropertiesプロパティを使ってブックを開かないでプロパティを取得するには

Application.FileDialog(msoFileDialogFilePicker)を使用すれば複数のファイル(ブック)を選択できます。

最終更新日時などのプロパティを取得する機会は意外とありますので、今回の方法をぜひ覚えておいてくださいね。

コメント

タイトルとURLをコピーしました