• ベストアンサー
  • 暇なときにでも

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

  • 質問No.5620139
  • 閲覧数201
  • ありがとう数3
  • 回答数2

お礼率 74% (476/640)

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

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

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

ベストアンサー率 69% (477/687)

取得だけであれば、以下で可能です。

サンプルは
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

お礼率 74% (476/640)

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

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 28% (1424/5026)

読むだけだったら、
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

お礼率 74% (476/640)

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

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ