Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5990 / 13646 ツリー ←次へ | 前へ→

【47826】ファイルプロパティの取得 kanae 07/3/23(金) 9:55 質問[未読]
【47827】Re:ファイルプロパティの取得 ウッシ 07/3/23(金) 10:27 発言[未読]
【47829】Re:ファイルプロパティの取得 kanae 07/3/23(金) 10:32 質問[未読]
【47831】Re:ファイルプロパティの取得 ウッシ 07/3/23(金) 11:48 発言[未読]
【47832】Re:ファイルプロパティの取得 りん 07/3/23(金) 12:39 発言[未読]
【47833】Re:ファイルプロパティの取得 Kein 07/3/23(金) 12:54 回答[未読]
【47835】Re:ファイルプロパティの取得 kanae 07/3/23(金) 14:11 お礼[未読]

【47826】ファイルプロパティの取得
質問  kanae  - 07/3/23(金) 9:55 -

引用なし
パスワード
   お世話になります。
VBA初心者で、出きるか出来ないかも分からないのですが、
ファイルのプロパティにある、カスタムの中のプロパティ(名前・値・種類)の
情報をマクロで取得することは可能なのでしょうか??

サイトで検索しようとしたのですが、なんと検索していいのかわからず
こうやって質問させていただいてます。
これは可能なのか?もし可能ならヒントとなるサイトやプログラムをご教授
いただけないでしょうか?

よろしくお願いします。

【47827】Re:ファイルプロパティの取得
発言  ウッシ  - 07/3/23(金) 10:27 -

引用なし
パスワード
   こんにちは

ActiveWorkbookのプロパティでいいのでしょうか?

Sub test1()
  Dim mDp As DocumentProperty
  Dim i  As Long
  
  For Each mDp In ActiveWorkbook.CustomDocumentProperties
    i = i + 1
    With Cells(i, 1)
      .Value = mDp.Name
      On Error Resume Next
        .Offset(, 1).Value = mDp.Value
        If Err Then .Offset(, 1).Value = "設定なし"
      On Error GoTo 0
    End With
  Next
End Sub

【47829】Re:ファイルプロパティの取得
質問  kanae  - 07/3/23(金) 10:32 -

引用なし
パスワード
   ▼ウッシ さん:
回答ありがとうございます。
言葉足らずですみません。
現在開いているブックではなく、あるフォルダにある全てのファイルに関して
カスタムのプロパティの値を羅列するような感じで作りたいのです。
記述いただいたプログラムから変更すればできるのでしょうか?

【47831】Re:ファイルプロパティの取得
発言  ウッシ  - 07/3/23(金) 11:48 -

引用なし
パスワード
   こんにちは

開かないと難しいですし、カスタムのプロパティはShellでは難しいみたいですし、

://support.microsoft.com/kb/q224351/

ここらへんを参考に調べてみて下さい。

【47832】Re:ファイルプロパティの取得
発言  りん E-MAIL  - 07/3/23(金) 12:39 -

引用なし
パスワード
   こんにちわ

>開かないと難しいですし、カスタムのプロパティはShellでは難しいみたいですし、
>
>://support.microsoft.com/kb/q224351/
>
>ここらへんを参考に調べてみて下さい。

htt p://oshiete1.goo.ne.jp/qa1953795.html
(htt p://okwave.jp/qa1953795.html)

こことかね(「DocumentProperties 開かずに取得」でGoogle検索の結果)

【47833】Re:ファイルプロパティの取得
回答  Kein  - 07/3/23(金) 12:54 -

引用なし
パスワード
   DsoFile.dllを使うと、こんな感じでしょーか ?

Sub Books_Propertie_Check()
  Dim Fol As String, MyF As String
  Dim i As Long
  Dim PropReader As Object
  
  Set PropReader = CreateObject("DSOleFile.PropertyReader")
  Range("A1:H1").Value = Array("BookName", "Title", "Subject", _
  "Author", "Company", "Category", "Keywords", "Comments")
  Fol = Application.DefaultFilePath & "\"
  i = 2: MyF = Dir(Fol & "*.xls")
  Do Until MyF = ""
    With PropReader.GetDocumentProperties(Fol & MyF)
     PAry = Array(MyF, .Title, .Subject, .Author, .Company, _
     .Category, .Keywords, .Comments)
    End With
    Range(Cells(i, 1), Cells(i, 8)).Value = PAry
    i = i + 1: MyF = Dir()
  Loop
  Set PropReader = Nothing
End Sub

DsoFile.dll は、最新バージョンが以下のサイトからDLできるようですが
http://support.microsoft.com/kb/224351/ja
私の使っているExcel2000でも、すでに
DS OLE GetDocument Properties 1.4 Object Library
が参照できるようになってました。いちおう上のコードは実行時バインドなんで、
ライブラリへの参照はしなくても問題ありませんが、まず探してみて、無ければ
MSのサイトからDLし、見つかればついでにチェックを付けておいたら良いと思います。

【47835】Re:ファイルプロパティの取得
お礼  kanae  - 07/3/23(金) 14:11 -

引用なし
パスワード
   回答いただいたみなさまへ

ありがとうございました。
DsoFile.dllを使用して上手く出来ました。
本当にありがとうございました。

5990 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free