アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBAに関する質問です。

対象のエクセルブックを開かずに、エクセルファイルのプロパティ(タイルト名など)を取得する方法を教えてください。

「DSO」を使用すれば所得できることは分かりましたが、別の方法で取得することは可能でしょうか?できれば「DSO」をインストールしていないパソコンからでも取得できるようにしたいと思っています。

心当たりのある方、アドバイスいただければと思います。

A 回答 (2件)

下記で高速に情報取得可能です。


他にも色々と方法はあるようですが私はこの方法をおすすめします。

ちなみに、ファイル更新日はfileオブジェクトのDateLastModifiedでも取得可能ですが。ネットワークドライブ上のファイルを誰かが開いている場合、開かれた時刻が取得されてしまうため、DateLastModifiedは使用していません。

Sub test()
Set o = GetObject("新規Microsoft Excel ワークシト.xls")
a = o.BuiltinDocumentProperties.Item(1)
b = o.BuiltinDocumentProperties.Item(7)
c = o.BuiltinDocumentProperties.Item(12)
Debug.Print a ''タイトル
Debug.Print b ''最終更新者
Debug.Print c ''最終更新日

d = o.Sheets.Count
Debug.Print d ''シート数

For Each oo In o.Sheets
e = oo.Name
Debug.Print e ''シート名
Next

End
End Sub
    • good
    • 3

DSO って何?


本は開いて、読んで、その内容が分かるわけですが....

サンプル・解説サイトを探すキーワード [] 内

1. [ Shell.Application GetDetailsOf, ParseName ]

■ 関連参考ソース

'// GetDetailsOf で調べられる項目の列挙
Sub test01()

  Dim shl     As Object
  Dim f      As Object
  Dim nam     As String
  Dim i      As Long

  Set f = CreateObject("Shell.Application").NameSpace("C:\")
  For i = 0 To 1000
    nam = f.GetDetailsOf(Nothing, i)
    If Len(nam) Then
      Debug.Print "INDEX:=" & CStr(i);
      Debug.Print vbTab;
      Debug.Print "NAME:= " & nam
    End If
  Next
  
End Sub

2. [ BuiltinDocumentProperties ]

3. [ FileSystemObject ]
  [ DateCreated, DateLastAccessed, DateLastModified, Size ]
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています