Excel VBAでJPG・GIF・PNGの画像ファイルから画像サイズを取得してみる

ExcelのVBAで画像ファイルから画像サイズを取得するには、LoadPicture関数でオブジェクトとして読み込み、WidthとHeightのプロパティで取得できます。

LoadPicture関数の解説によると対応する画像ファイルの形式は、bmp・ico・rle・wmf・emf・gif・jpgとあるのでPNGファイルは無理かもしれませんが試してみます。



Homeに戻る > Excel プログラムのTipsへ

JPGの画像サイズを取得する

LoadPicture関数で読み込み、WidthとHeightプロパティをMsgBoxで表示します。
JPGの画像サイズを取得するVBA

Option Explicit

Private Sub CommandButton1_Click()
    Dim img As Object

    Set img = LoadPicture(Range("B2"))
    MsgBox "幅:" & img.Width & vbCrLf & "高:" & img.Height
    Set img = Nothing
End Sub

実行結果です。
幅と高さが取得できました。
幅と高さが取得できた

取得した幅と高さは単位がポイントなので、ピクセルに変換します。
取得した幅と高さは単位がポイント

Option Explicit

Private Sub CommandButton1_Click()
    Dim img As Object

    Set img = LoadPicture(Range("B2"))
    MsgBox "幅:" & CLng(img.Width * 0.0378) & vbCrLf & "高:" & CLng(img.Height * 0.0378)
    Set img = Nothing
End Sub

ポイントからピクセルに変換した結果です。
ポイントからピクセルに変換した結果

画像ファイルのプロパティで確認すると合っているのが分かります。
画像ファイルのプロパティで確認


GIF・PNGの画像サイズを取得する

GIFファイルに変え、上と同じVBAで実行した結果正常に取得できました。
ファイルのプロパティとも合っていました。
GIFの画像サイズを取得した結果

PNGファイルに変え、上と同じVBAで実行した結果「実行時エラー481:ピクチャが不正です。」のエラーが発生し、やはり取得できませんでした。
PNGの画像サイズを取得した結果エラー


Homeに戻る > Excel プログラムのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved