• ベストアンサー

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

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

  • e-l
  • お礼率45% (158/349)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • エクセルVBAで、ファイルの情報の「作成日時」取得

    エクセル2000です。 メニューからファイル、プロパティでダイアログを呼び出すと、タブが「ファイルの情報」、「ファイルの概要」、「詳細情報」、「ファイル構成」、「ユーザー設定」と並んでいます。 そのうちの「ファイルの情報」タブと、「詳細情報」タブの両方に「作成日時」と「更新日時」があります。 同じ「作成日時」がなぜ二つあるのか、どう違うのが、試してみると更新日時はどちらも同じですが、作成日時が「詳細情報」はそのエクセルを初めて作成した日時、「ファイルの情報」は、そのエクセルに名前を付けて保存した日時のようです。 上記の理解で合っていますか? 次にそのエクセルBOOKに記述したVBAで作成日時を取得しようとした場合、 ActiveWorkbook.BuiltinDocumentProperties(11).Value で取得できる作成日時は、「詳細情報」にあるほうの日時のようですが、「ファイルの情報」にある作成日時(名前を付けて保存した日時)をVBAで取得するにはどうしたらよいのでしょうか? なにとぞよろしくお願い申し上げます。

  • マイビデオのファイルのプロパティ

    マイビデオのファイルのプロパティで見れる日付けのことなんですが、作成日時と更新日時の関係が更新日時が先で作成日時があとの日時になっています。これって更新日時がカメラで写した日で作成日時がパソコンに取り込んだ日時ってことなんでしょうか?よろしくお願いします。WindowsXPです。カメラはキャノンのコンパクトカメラ(イクシー900i9)です。

  • Excel VBA コンテンツの作成日時の取り出し

    Word 2003で作成したファイル(拡張子doc)のプロパティの「詳細」タブに示される「コンテンツの作成日時」をExcel 2003のVBAで取り出すことができません。これまでに、(1)FileDateTime (2)FSOのDateCreated (3)FSOのDateLastModified などを試しましたが、得られたのはいずれもプロパティの「全般」タブの「作成日時」や「更新日時」で、「コンテンツの作成日時」ではありませんでした。対象としているdoc ファイルは、復元ソフトで復元したもので、唯一、「コンテンツの作成日時」だけが、今回、取り出したい、最初にファイルが作成された日時が保存されており、「全般」タブの「作成日時」などは、ファイルを復元した日や操作した日となっています。どうしても「コンテンツの作成日時」を取り出して、ファイル作成日をファイル名に追加し、新しいファイル名にしたいと思っています。よろしくお教えいただきますようお願いいたします。

  • excelの前回保存日時を取得したい

    office2002を使用しています。 VBAでCreateObjectを使用してexceで作成したファイルlのプロパティの作成日、更新日、アクセス日は取得でくるのですが、プロパティ、概要、詳細設定にある前回保存日時を取得したい場合はどうすればよいのでしょうか。 宜しくお願いします。

  • ファイルのプロパティ表示タブ

    ファイルのプロパティ表示タブの概要タブがある日から表示されなくなってしまい詳細設定での編集が出来なくて困っております。ここでの質問回答も拝見させて頂いたのですが、見付け切れませんでした。どなたかお分かりの方いらっしゃいましたらよろしくお願い致します。

  • ファイルのプロパティについて

    スマホで写真を撮り PCに写真のデータをコピーしると プロパティが変更されます。 例 スマホの写真 作成日時 2014年12月22日 更新日時 2014年12月22日 のデータを 2015年2月13日 に スマホからPCに写真データをコピーしてプロパティを確認すると 作成日時 2015年2月13日 更新日時 2015年2月13日 と変更されてしまいます。 プロパティを変更しないでのコピーは可能ですか?

  • 画像のプロパティに表示される情報を変更したい。

    デスクトップにデジカメで撮影したjpgファイルがあります。 右クリックでプロパティ、概要タブ(詳細設定を押す場合もある)にカメラのモデルや露出時間が表示されます。 この表示を消したいのですがどうしたらいいでしょうか? WinXPhome PaintShopPro 

  • ファイルのプロパティ

    Windows XP Professionalのファイルのプロパティで、 [概要]タブを隠すことはできるのでしょうか? それから[属性]の[読み取り専用(R)]、[隠しファイル(H)]、 [詳細設定(D)]のそれぞれを無効化(クリックできないようにする)ことはできるのでしょうか? 方法はGPOでもレジストリでも構いません。 以上、宜しく御願いします。

  • JPGのファイル情報を変更する方法

    デジカメ撮影以外で作成したJPGファイルに,写真情報(カメラのモデルや撮影日時など)を付加させたいと思っています。 普通,デジカメの撮影にて作成したJPGは, プロパティ→概要→イメージ カメラのモデル,レンズ,露出時間,写真の撮影日などなど が確認できます。 しかし,Photo Shopで作成したりダウンロードしたJPGファイルは, プロパティ→概要→イメージ を確認しても,上のようなファイル情報は含まれていないと思います。 画像の作成日時や撮影日を変更するソフトとしては, 簡単ファイル日時変更 EzFileAge(http://hp.vector.co.jp/authors/VA029585/EzFileAge/readme.htm...) 日付修正・Exif修正ソフト (http://exif.main.jp) があるかと思います。 しかし,これは,デジカメで作成したJPGファイル(もともと撮影日時等の情報が含まれているファイル)であれば,撮影日等のデータを変更することができますが,もともとその情報がないJPGに無理やり写真情報を付加させることはできなかったと思います。 以上,ご存知の方がいらっしゃれば,ご教授お願いいたします。

  • EXCEL 関数かVBAでファイル作成日を取得する方法

    エクセルのプロパティ→詳細情報→作成日時で表示される作成日時を取得する方法を教えてください。 ワークシート関数でもVBAでもどちらでもOKです。 よろしくお願いします。

専門家に質問してみよう