Home » エクセルマクロ・Excel VBAの使い方 » 指定フォルダー内のPNGファイルのサイズを取得するExcelマクロ

指定フォルダー内のPNGファイルのサイズを取得するExcelマクロ

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2409(ビルド18015.20000クイック実行)ベータチャネル

WIA.ImageFileオブジェクトを使えばPNGファイルのサイズをVBAで取得できることをご紹介しました。

もちろん、指定したフォルダーに含まれる全PNGファイルのサイズを取得するExcelマクロも作れます。

[スポンサードリンク]

指定フォルダー内のPNGファイルのサイズを取得するサンプルマクロ

以下のExcelマクロを実行すると、Cドライブのtempフォルダー内にあるPNGファイルの、ファイル名・高さ・幅が、アクティブシートのA:C列に出力されます。

Sub 指定フォルダーの画像ファイルのサイズを取得する()

 Const FOL_PATH = "C:\temp\"
 Const IMG_TYPE = "png"
 
 Dim f_name As String
 f_name = Dir(FOL_PATH & "*." & IMG_TYPE)
 If f_name = "" Then
  MsgBox FOL_PATH & " フォルダーに " & IMG_TYPE & " ファイルが見つかりません。"
  Exit Sub
 End If
 
 Range("A1").CurrentRegion.ClearContents
 Range("A1").Value = "ファイル名"
 Range("B1").Value = "高さ"
 Range("C1").Value = "幅"
 
 Dim img As Object
 Set img = CreateObject("WIA.ImageFile")
 Dim i As Long: i = 1
 Do
  i = i + 1
  img.LoadFile FOL_PATH & f_name
  Cells(i, "A").Value = f_name
  Cells(i, "B").Value = img.Height
  Cells(i, "C").Value = img.Width
  f_name = Dir
 Loop Until f_name = ""
 Set img = Nothing
 
 Range("A1").CurrentRegion.Columns.AutoFit
 
End Sub

サンプルマクロで行っている処理

VBAのDir関数を使った、以下のコードを実行すると、Cドライブのtempフォルダー内に含まれるPNGファイル名がA2セルから下方向に出力されます。

 Const FOL_PATH = "C:\temp\"
 Const IMG_TYPE = "png"

 Dim f_name As String
 f_name = Dir(FOL_PATH & "*." & IMG_TYPE)
 If f_name = "" Then
  MsgBox FOL_PATH & " フォルダーに " & IMG_TYPE & " ファイルが見つかりません。"
  Exit Sub
 End If
 
 Dim i As Long: i = 1
 Do
  i = i + 1
  Cells(i, "A").Value = f_name
  f_name = Dir
 Loop Until f_name = ""

このコードに、WIA.ImageFileオブジェクト関連の処理や、

 Const FOL_PATH = "C:\temp\"
 Const IMG_TYPE = "png"
 
 Dim f_name As String
 f_name = Dir(FOL_PATH & "*." & IMG_TYPE)
 If f_name = "" Then
  MsgBox FOL_PATH & " フォルダーに " & IMG_TYPE & " ファイルが見つかりません。"
  Exit Sub
 End If
 
 Range("A1").CurrentRegion.ClearContents
 Range("A1").Value = "ファイル名"
 Range("B1").Value = "高さ"
 Range("C1").Value = "幅"
   
 Dim img As Object
 Set img = CreateObject("WIA.ImageFile")
 Dim i As Long: i = 1
 Do
  i = i + 1
  img.LoadFile FOL_PATH & f_name
  Cells(i, "A").Value = f_name
  Cells(i, "B").Value = img.Height
  Cells(i, "C").Value = img.Width
  f_name = Dir
 Loop Until f_name = ""
 Set img = Nothing
 
 Range("A1").CurrentRegion.Columns.AutoFit

見た目を整える処理を追加したのが先ほどのサンプルマクロです。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 指定フォルダー内のPNGファイルのサイズを取得するExcelマクロ

「エクセルマクロ・Excel VBAの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.