• ベストアンサー

写真ファイルの更新日を、撮影日の日付に自動的に書き換えたい

フォルダを手動で選択し(ここまではできます)、その中にあるJPEG写真ファイルの更新日の日付、時刻を、撮影日の日付、時刻に自動的に書き換えたいのですが、VBでどんな記述をすればよいのでしょうか。日付と時刻データはDCFなのでヘッダーあたりに入っていると思われますが。その部分がどこにあって、その撮影日の日付、時刻を取り出すのが特にわかりません。よろしくお願いします。

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

  • ベストアンサー
回答No.1

取得だけであれば、以下で可能です。 サンプルは Microsoft Scripting Runtime Microsoft Shell Controls And Automation を参照設定すると、Object型ではない宣言が可能です。 Private Const DEF_FILE_NAME As String = "C:\test\サンプル.jpg" Sub Main()   Dim l_fsoObj  As Object 'As Scripting.FileSystemObject   Dim l_fsoFile  As Object 'As Scripting.File      Set l_fsoObj = CreateObject("Scripting.FileSystemObject")   Set l_fsoFile = l_fsoObj.GetFile(DEF_FILE_NAME)   Call DebugFileInfo(l_fsoFile.ParentFolder.Path, l_fsoFile.Name) End Sub Private Sub DebugFileInfo(ByVal p_strFolder As String, ByVal p_strFile As String)   Dim objShell  As Object 'As Shell   Dim objDir   As Object 'As Shell32.Folder   Dim objItm   As Object 'As Shell32.FolderItem   Dim i      As Integer      If Not (Right(p_strFolder, 1) = "\") Then     p_strFolder = p_strFolder & "\"   End If   Set objShell = CreateObject("Shell.Application")   Set objDir = objShell.NameSpace(CStr(p_strFolder))   Set objItm = objDir.ParseName(p_strFile)   Dim l_strTitle As String   Dim l_strValue As String   For i = 0 To 39     l_strTitle = objDir.GetDetailsOf(Nothing, i)     l_strValue = objDir.GetDetailsOf(objItm, i)          Debug.Print i & ":" & l_strTitle & "="; l_strValue   Next i End Sub

greenhope
質問者

お礼

回答、ありがとうございました。おかげでDCFの日付データの位置はわかりました。そうなると、ファイルの一部を読み書きすればできそうです。その件で新たに質問を投稿しましたので、おわかりでしたら回答をお願いします。

その他の回答 (1)

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.2

読むだけだったら、 http://www.vbaccelerator.com/home/vb/code/vbMedia/Using_GDI_Plus/Reading_EXIF_and_Other_Image_Properties/article.asp 書くことについては、しばらく悩んだことがありますが、 私は、その類のソフトを使うか、どうしてもVBでということならOCXなどを購入したほうが良い、という結論に達しました。(挫折しました) http://msdn.microsoft.com/en-us/library/ms533832(VS.85).aspx http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html http://www.spaz.com/mr/work/aspexiffuncs/

greenhope
質問者

お礼

回答、ありがとうございました。おかげでDCFの日付データの位置はわかりました。そうなると、ファイルの一部を書き込めばできそうです。その件で新たに質問を投稿しましたので、おわかりでしたら回答をお願いします。