Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
Re: 前回保存者を書き出したい (dsofile関連の訂正)
投稿日時: 20/09/08 08:22:05
投稿者: simple

DsoFileというユーティリティが64bitOSでは使えないなどと、
事実誤認による発言をしてしまい、失礼しました。(*)
訂正させてください。
 
以下のような使い方でdsofileの利用ができました。(Windows7,10で確認済み)
 
■必要なファイルの取得
http://officetanaka.net/excel/vba/tips/tips122.htm
に記載の方法でファイルを取得する必要があります。
(ファイル(DsoFileSetup_KB224351_x86.exe)をダウンロードし、
  これを実行します。)
 
■tanakaさんの記事中のコードを一部修正して確認しました。

Sub Sample10()
    Dim DSO As Object
    Set DSO = CreateObject("DSOFile.OleDocumentProperties")
    DSO.Open "D:\MyDocuments\202009\test.xlsm"
    Debug.Print DSO.SummaryProperties.LastSavedBy
    DSO.Close
    Set DSO = Nothing
End Sub

最終保存者が出力されました。
 
■昔のファイルを見ましたら、こんなコードもありました。参考にしてください。
(出所は不明ですが、読み込みだけですので悪さをすることはありません。)
 
Sub test()
    Dim oDocumentProps
    Dim oSummProps
    Dim FileName
 
    Set oDocumentProps = CreateObject("DSOFile.OleDocumentProperties")
 
    FileName = Application.GetOpenFilename()
                
    If FileName <> False Then
        oDocumentProps.Open FileName, True, 2
        ' 2=dsoOptionOpenReadOnlyIfNoWriteAccess
        Set oSummProps = oDocumentProps.SummaryProperties
 
        On Error Resume Next
        Debug.Print "Title: " & oSummProps.Title
        Debug.Print "Author: " & oSummProps.Author
        Debug.Print "Comments: " & oSummProps.Comments
 
        Debug.Print "Application: " & oSummProps.ApplicationName
        Debug.Print "Version: " & oSummProps.Version
        Debug.Print "Subject: " & oSummProps.Subject
        Debug.Print "Category: " & oSummProps.Category
        Debug.Print "Company: " & oSummProps.Company
        Debug.Print "Keywords: " & oSummProps.Keywords
        Debug.Print "Manager: " & oSummProps.Manager
        Debug.Print "LastSaved by: " & oSummProps.LastSavedBy
        Debug.Print "WordCount: " & oSummProps.WordCount
        Debug.Print "PageCount: " & oSummProps.PageCount
        Debug.Print "ParagraphCount: " & oSummProps.ParagraphCount
        Debug.Print "LineCount: " & oSummProps.LineCount
        Debug.Print "CharacterCount: " & oSummProps.CharacterCount
        Debug.Print "CharacterCount (w/spaces): " _
                    & oSummProps.CharacterCountWithSpaces
        Debug.Print "ByteCount: " & oSummProps.ByteCount
        Debug.Print "PresFormat: " & oSummProps.PresentationFormat
        Debug.Print "SlideCount: " & oSummProps.SlideCount
        Debug.Print "NoteCount: " & oSummProps.NoteCount
        Debug.Print "HiddenSlides: " & oSummProps.HiddenSlideCount
        Debug.Print "MultimediaClips: " _
                    & oSummProps.MultimediaClipCount
        Debug.Print "DateCreated: " & oSummProps.DateCreated
        Debug.Print "DateLastPrinted: " & oSummProps.DateLastPrinted
        Debug.Print "DateLastSaved: " & oSummProps.DateLastSaved
        Debug.Print "TotalEditingTime (mins): " _
                    & oSummProps.TotalEditTime
        Debug.Print "Template: " & oSummProps.Template
        Debug.Print "Revision: " & oSummProps.RevisionNumber
        Debug.Print "IsShared: " & oSummProps.SharedDocument
 
        If oDocumentProps.IsOleFile Then
            Debug.Print "CLSID: " & oDocumentProps.CLSID
            Debug.Print "ProgID: " & oDocumentProps.progID
            Debug.Print "OleFormat: " & oDocumentProps.OleDocumentFormat
            Debug.Print "OleType: " & oDocumentProps.OleDocumentType
        End If
 
        Set oSummProps = Nothing
        Set oDocumentProps = Nothing
        On Error GoTo 0
    End If
End Sub
(なお、上記に現れるpropertyがどんな種類のファイルにもあるということではありません。
  注意願います。On Error Resume Nextとしているのは、そのためです。)
 
(*)
https://qiita.com/Q11Q/items/f7c2721cec62c89bd816
による記事を私が誤解したのが間違いのもとでした。

投稿日時: 20/09/08 11:19:03
投稿者: simple

閉じます。