• ベストアンサー

VBA:ファイルプロパティの一部を取得したい。

撮った写真の撮影日をファイル名にしようと考えています。カメラはキャノンで、ファイルプロパティの[概要]タブに詳細なプロパティが記述されており、そのなかに[カメラの撮影日]があります。それを取得したいのですがどうすればできるのでしょうか?あくまで撮影日で、作成日時とは違います。ファイルをコピーすると作成日時は変わってしまいあてにならないからです。VBA(エクセル)での操作でしかわからないので、VBA仕様でお答えいただければ助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

(1)エクセルVBA (2)FSO (3)API でのやり方のうち(1)では Sub test01() For i = 1 To 9 x = ActiveWorkbook.BuiltinDocumentProperties(i).Value Cells(i, 1) = x Next i End Sub を見つけました。 http://www1.harenet.ne.jp/cgi-bin/cgiwrap/unaap/bbs2/bbsdsp_itm.cgi?genrekey=api&logmode=2&tpckey=948944115 そこに他に関連したことが多少書いてあるので見てください。 BuiltinDocumentPropertiesについては http://www2.moug.net/cgi-bin/technic.cgi?exvba+TI06010028 ほかこの語でWEB照会してください。 この語に行き当たるまでに苦労しました。 --------以下蛇足 (1)(2)は通常は、「作成日時とは違います」の作成日時のことを言及したものばかりでした。 Sub rest01() Dim fso, f1 Set fso = CreateObject("Scripting.FileSystemObject") Set f1 = fso.GetDrive("c:\") Set fldr = fso.GetFolder("c:\My Documents\") MsgBox "フォルダ名: " & fldr.Name MsgBox fldr.Attributes MsgBox fldr.datecreated MsgBox fldr.Parentfolder Set fl = fso.Getfile("c:\My Documents\aaaXX.xls") MsgBox "フォルダ名: " & fl.Name MsgBox fl.Attributes MsgBox fl.datecreated MsgBox fl.Parentfolder End Sub や Option Explicit ' ファイルの属性の取得 Sub GET_ATTRIBUTE() Const cnsTITLE = "ファイルの属性の取得" Const cnsATTR = "このファイルの属性は" Dim xlAPP As Application Dim strFILENAME As String Dim intAttr As Integer Dim strMSG As String Set xlAPP = Application ' ファイル名の指定 strFILENAME = _ xlAPP.GetOpenFilename("全てのファイル (*.*),*.*", , _ cnsTITLE) If StrConv(strFILENAME, vbUpperCase) = "FALSE" Then Exit Sub End If ' ファイル属性の取得 intAttr = GetAttr(strFILENAME) ' ファイル属性の判定 strMSG = cnsATTR If (intAttr And vbReadOnly) <> 0 Then strMSG = strMSG & vbCr & "読み取り専用" End If If (intAttr And vbHidden) <> 0 Then strMSG = strMSG & vbCr & "隠しファイル" End If If (intAttr And vbSystem) <> 0 Then strMSG = strMSG & vbCr & "システムファイル" End If If (intAttr And vbDirectory) <> 0 Then strMSG = strMSG & vbCr & "フォルダ" End If If (intAttr And vbArchive) <> 0 Then strMSG = strMSG & vbCr & "アーカイブ" End If If (intAttr And vbNormal) <> 0 Then strMSG = strMSG & vbCr & "通常ファイル" End If If strMSG = cnsATTR Then strMSG = strMSG & vbCr & "属性=" & intAttr End If strMSG = strMSG & vbCr & "です。" ' 更新日時 strMSG = strMSG & vbCr & "更新日時は" & _ FileDateTime(strFILENAME) ' ファイルサイズ strMSG = strMSG & vbCr & "サイズは" & _ FileLen(strFILENAME) & "バイトです。" ' 処理結果を表示 MsgBox strMSG End Sub のような属性を問題にしている。(以上WEBページより引用) 仰っている「ファイルプロパティの[概要]タブに詳細なプロパティ」はエクセル・ワードの場合のファイルの特別情報か? 良く判らぬ者が書いているので、あとは宜しく。

その他の回答 (1)

  • wuyan
  • ベストアンサー率51% (183/352)
回答No.1

こちらをどうぞ。

参考URL:
http://hp.vector.co.jp/authors/VA031262/excel.html

関連するQ&A

専門家に質問してみよう