Excel2000のVBAを利用して、ファイルの作成者及び前回保存者等のファイル属性を取り出したいと考えています。WHSのインストールが必要なWscript等は利用しないで、API関数等を利用したいと考えています。具体的なコード等について教えて下さい。なお、APIの知識はほとんどありません。宜しくお願い致します。

回答の条件
  • 1人2回まで
  • 登録:2007/06/28 17:50:28
  • 終了:2007/07/05 17:55:03

回答(2件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982007/06/28 18:02:06

ポイント35pt

http://excelfactory.sakura.ne.jp/excelvbatips/file/file_6.htm

http://excelfactory.sakura.ne.jp/excelvbatips/file/file_7.htm

ThisWorkbook.BuiltinDocumentProperties(3).Value

が作成者です。

ThisWorkbook.BuiltinDocumentProperties(7).Value

が更新者です。

id:okehara

すみません。質問が正確ではありませんでした。ファイルは他のファイルの属性で、指定したフォルダー下に存在するOfficeファイルのファイル属性を取り出し、Excelシートに書き出したいのです。API関数を使えば何とかなるのではないかと考えた次第です。

2007/06/28 19:25:20
id:SALINGER No.2

SALINGER回答回数3454ベストアンサー獲得回数9692007/06/28 19:46:19

ポイント35pt

指定したフォルダに入っている全てのExcelファイルから取得するマクロです。

(エラートラップしていないのでExcel以外は入れないでください)

A列にファイル名、B列に作成者、C列に更新者が入ります。

Sub Macro()
    Dim str As String
    Dim obj As Object
    Dim fso As Object
    Dim myFile As Object
    Dim i As Long
    
    'xlsファイルのあるフォルダのアドレスに変えてください
    str = "C:\Documents and Settings\asano\デスクトップ\sample\"
    
    Set fso = CreateObject("Scripting.FileSystemObject")

    i = 1
    For Each myFile In fso.GetFolder(str).Files
        Set obj = GetObject(myFile.Path)
        Cells(i, 1).Value = myFile.Name
        Cells(i, 2).Value = obj.BuiltinDocumentProperties("Author")
        Cells(i, 3).Value = obj.BuiltinDocumentProperties("Last Author")
        obj.Close
        i = i + 1
    Next
    Set obj = Nothing
    Set fso = Nothing
End Sub
id:okehara

早速のご回答ありがとうございます。FSOのBuiltinDocumentPropertiesは初めてです。頂いたマクロを標準モジュールに貼り付け動かしたところ、「実行時エラー'438'オブジェクトは、このプロパティまたはメソッドをサポートしていません。」というエラーメッセージが表示されます。何か参照設定等が必要なのでしょうか。可能であれば、参照設定等の操作なしでマクロを動かすだけでリストを作成したいと考えております。

2007/06/28 21:26:00
  • id:SALINGER
    Excel2003でMicrosoft Excel 11.0 object libraryは最初から参照設定になってたんで意識しないで使ってましたが。
  • id:mj99
    参照設定はなくても動きますよ(OfficeがインストールされていればOK)

    Office2000の場合はAccess(mdb)にBuiltinDocumentPropertiesが無いですね(doc,xls,pptの3種からしか取れない)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません