アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelに画像(例:001.bmp)のプロパティー情報の書き出し方を
教えてください。
"全般"タブの書き出し方はだいたい調べて解りました。
*下記コード参考
"概要"タブの書き出し方がわかりません。
下記のように入力するにはどうしたら良いのでしょうか?
教えてください。

*参考コード*
ThisWorkbook.Sheets(1).Range("A1") = "パス"
ThisWorkbook.Sheets(1).Range("B1") = "ファイル名"
ThisWorkbook.Sheets(1).Range("C1") = "ファイル種別"
ThisWorkbook.Sheets(1).Range("D1") = "最終更新日"
ThisWorkbook.Sheets(1).Range("E1") = "フルパス"

~省略~

ThisWorkbook.Sheets(1).Cells(i, 1) = Target
'ファイル名
sFile = Fx.Name
'ファイル名の書き出し
ThisWorkbook.Sheets(1).Cells(i, 2) = sFile
'ファイル種別
sFType = Fx.Type
'最終更新日時の書き出し
ThisWorkbook.Sheets(1).Cells(i, 3) = sFType
'最終更新日
sLMod = Fx.DateLastModified
ThisWorkbook.Sheets(1).Cells(i, 4) = sLMod
'フォルダフルパス
SFull = Target & "\" & sFile
ThisWorkbook.Sheets(1).Cells(i, 5) = SFull

A 回答 (3件)

概要タブの内容は、実際にファイルを開いて見なければ分からない情報が含まれます。


LoadPicture関数 → IPictureDispクラス → Bitmapハンドル → GetObject(WinAPI)
という流れでBitmapのヘッダ内容を取り出します。

Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long

Private Type BITMAP
bmType As Long
bmWidth As Long
bmHeight As Long
bmWidthBytes As Long
bmPlanes As Integer
bmBitsPixel As Integer
bmBits As Long
End Type

Private Sub CommandButton1_Click()
Dim img As IPictureDisp, bmp As BITMAP

Set img = LoadPicture("L:\Zone データ退避\HDD修復資料\ACE_01.jpg")

Call GetObject(img.Handle, Len(bmp), bmp)

Debug.Print "横幅 = " & bmp.bmWidth
Debug.Print "高さ = " & bmp.bmHeight
Debug.Print "ビット深度 = " & bmp.bmBitsPixel

End Sub

DPIについては、BMPではスクリーンのDPIに常に一致していたはず…。(未確認) またBMPのフレーム数は常に1だと思います。
    • good
    • 0

#1 Wizard_Zeroです(汗



今度は#2の訂正・・・orz
LoadPictureでPNGは読めませんでした。

訂正前)LoadPictureで開けるファイル(BMP, JPEG, PNG, GIF等)
訂正後)LoadPictureで開けるファイル(BMP, JPEG, GIF等)
    • good
    • 0
この回答へのお礼

ご丁寧なご回答いただきありがとう御座います。

お返事が送りまして申し訳ございません。m(T_T)m
Wizard_Zero様のご指導をご参考に勉強したいと思います。

本当に有り難う御座います。

お礼日時:2009/10/02 10:18

#1 Wizard_Zeroです。

付け足し・・・。

BMP前提での話しかしていませんが、LoadPictureで開けるファイル(BMP, JPEG, PNG, GIF等)であれば全て同じ方法で取得できると思います。
ただし、JPEG等DPIが指定できる画像形式の場合、形式によってDPIの取り方が代わってくるでしょう。突き詰めれば、ファイルごとにバイナリを読むことになりますが、どこまでの情報が必要なのか不明なのでひとまずここまでで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!