情報関連 指定フォルダ内のすべてのファイル(JPG・MP3等)の拡張プロパティを取得

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

Option Explicit


Sub PropertyFileInFolder()
'*******************************************************
'指定フォルダ内のすべてのファイルの拡張プロパティを取得
'*******************************************************
'JPGやMP3ファイルのプロパティを取得
'2010.03若干修正

Dim objCRT As Object, objFldr As Object, i As Byte
Dim strPrprty(40) As String 'ファイル情報の項目名をセット
Dim strFlNm As Object, str As String, folPath As Variant

folPath = "C:\Air Supply"

'ActiveX オブジェクトへの参照
Set objCRT = CreateObject("Shell.Application")
'名前空間の名前を宣言
Set objFldr = objCRT.Namespace("" & folPath & "")

For i = 0 To 40
    'ファイル情報の項目名をセット(取得).Items
    '[GetDetailsOf]ファイル情報を取得(ファイル名.Items,情報番号)
    strPrprty(i) = objFldr.GetDetailsOf(objFldr.Items, i)
Next

For Each strFlNm In objFldr.Items
    str = "" 'クリア
    For i = 0 To 40
        str = str & i & vbTab & strPrprty(i) _
        & vbTab & objFldr.GetDetailsOf(strFlNm, i) & vbCr
        '[GetDetailsOf]ファイル情報を取得(ファイル名,情報番号)
    Next
    MsgBox str
    Debug.Print str
Next

'--------------------------------------------------

'【JPG表示項目一覧】
'0   名前    1.jpg
'1   サイズ  9 KB
'2   種類    JPEG イメージ
'3   更新日時    2008/04/11 17:14
'4   作成日時    2009/10/14 14:20
'5   アクセス日時    2009/10/14 16:12
'6   属性
'7   状態
'8   所有者 --------
'9   作成者
'10  タイトル
'11  表題
'12  カテゴリ
'13  ページ数
'14  コメント
'15  著作権
'16  アーティスト
'17  アルバムのタイトル
'18  年
'19  トラック番号
'20  ジャンル
'21  長さ
'22  ビット レート
'23  保護
'24  カメラのモデル
'25  写真の撮影日
'26  大きさ  282 x 100
'27      282 ピクセル
'28      100 ピクセル
'29  この回のタイトル
'30  プログラムの説明
'31
'32  オーディオ サンプル サイズ
'33  オーディオ サンプル レート
'34  チャンネル
'35  会社名
'36  説明
'37  ファイル バージョン
'38  製品名
'39  製品バージョン
'40  キーワード

'--------------------------------------------------

'【MP3表示項目一覧】
'0   名前    02 Even the Nights Are Better.mp3
'1   サイズ  4,525 KB
'2   種類    MP3 形式サウンド
'3   更新日時    2009/04/07 8:19
'4   作成日時    2008/09/08 8:21
'5   アクセス日時    2009/10/14 16:24
'6   属性 a
'7   状態 オンライン
'8   所有者 --------
'9   作成者  Air Supply
'10  タイトル    Even the Nights Are Better
'11  表題
'12  カテゴリ Rock
'13  ページ数
'14  コメント
'15  著作権
'16  アーティスト    Air Supply
'17  アルバムのタイトル Now And Forever
'18  年 1982
'19  トラック番号 2
'20  ジャンル Rock
'21  長さ    0:03:58
'22  ビット レート   192kbps
'23  保護 いいえ
'24  カメラのモデル
'25  写真の撮影日
'26  大きさ
'27
'28
'29  この回のタイトル
'30  プログラムの説明
'31
'32  オーディオ サンプル サイズ  0 ビット
'33  オーディオ サンプル レート  44 KHz
'34  チャンネル
'35  会社名
'36  説明
'37  ファイル バージョン
'38  製品名
'39  製品バージョン
'40  キーワード

End Sub


Sub ファイルの一覧を取得する()
'*******************************************************************************
'ファイルの一覧を取得する
'*******************************************************************************
    Dim buf As String, i As Byte, strPath As Variant
    Dim strPthNm As String
    strPath = "C:\Air Supply"
    buf = Dir(strPath & "\")
    Do While buf <> ""
        For i = 0 To 33
        MsgBox FileProperty(strPath, buf, i)
        Next i
        buf = Dir()
    Loop
End Sub


Function FileProperty(strPath As Variant, strFileName As String, PropertyNo As ByteAs String
'*******************************************************
'指定ファイルの拡張プロパティを取得
'*******************************************************
'JPGやMP3ファイルのプロパティを取得

Dim objCRT As Object, objFldr As Object, objFldrItm As Object

'ActiveX オブジェクトへの参照
Set objCRT = CreateObject("Shell.Application")
''名前空間の名前を宣言
Set objFldr = objCRT.Namespace("" & strPath & "")
Set objFldrItm = objFldr.ParseName(strFileName)

    '[GetDetailsOf]ファイル情報を取得(ファイル名,情報番号)
    FileProperty = objFldr.GetDetailsOf(objFldrItm, PropertyNo)

'--------------------------------------------------

'【表示項目一覧】
'0   名前
'1   サイズ
'2   種類
'3   更新日時
'4   作成日時
'5   アクセス日時
'6   属性
'7   状態
'8   所有者
'9   作成者
'10  タイトル
'11  表題
'12  カテゴリ
'13  ページ数
'14  コメント
'15  著作権
'16  アーティスト
'17  アルバムのタイトル
'18  年
'19  トラック番号
'20  ジャンル
'21  長さ
'22  ビット レート
'23  保護
'24  カメラのモデル
'25  写真の撮影日
'26  大きさ  282 x 100
'27      282 ピクセル
'28      100 ピクセル
'29  この回のタイトル
'30  プログラムの説明
'31
'32  オーディオ サンプル サイズ
'33  オーディオ サンプル レート
'34  チャンネル
'35  会社名
'36  説明
'37  ファイル バージョン
'38  製品名
'39  製品バージョン
'40  キーワード

End Function

 

2000年01月01日|[VBサンプルコード]:[情報関連]