この人頭いいなと思ったエピソード

初めて質問させていただきます。

エクセルファイルの「右クリックメニュー」-「プロパティ」-「カスタム」の情報をVBを使って操作する方法を探しております。

通常は、workbook.CustomDocumentPropertiesを利用するかと思うのますが、

Dim wb As Workbook

Set wb = workbooks.Open Filename:="c:\aaa.xls") '(1)
'Set wb = Workbooks("c:\aaa.xls") '(2)
'Set wb = CreateObject("c:\aaa.xls") '(3)

debug.print wb.CustomDocumentProperties("顧客")

(1)~(3)の方法でオブジェクトを取得した場合、
一度ファイルを開く行為が行われているようです。

しかしながら、私が「カスタムドキュメントプロパティ」を参照しようとしてるファイルにはパスワードがかかっていることがあります。
複数のファイルを一括で処理しようとした際にファイルを開くとパスワードを求められ、プログラムが停止してしまうのが不都合となります。

ただ、エクスプローラなどで「カスタムドキュメントプロパティ」の内容を見るときはファイルを開く動作が不要と思われます。
(少なくともパスワードは求められません。)
なんらかの方法があるかと思うのですが心当たりのある方、お助けいただければと思います。

A 回答 (1件)

こんにちは。



DSO を使えばよいと思います。以下は、その Verion 2.0 を使っています。

Sub ReadOfficeCustomProperties()
Dim FileName As String
'http://support.microsoft.com/default.aspx?scid=k …
'DSO OLE Document Properties Reader 2.0 に参照設定
Dim DSO As DSOFile.OleDocumentProperties
Set DSO = New DSOFile.OleDocumentProperties
FileName = "c:\aaa.xls"
 DSO.Open sFileName:=FileName
 Debug.Print DSO.CustomProperties("顧客")
 DSO.Close
End Sub
    • good
    • 0

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

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


おすすめ情報