• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロでコンタクトシートを作成したいです)

エクセルのマクロでコンタクトシート作成

このQ&Aのポイント
  • エクセルのマクロを使用して、フォルダ内の画像を一覧リスト化するコンタクトシートを作成したいです。
  • A列に画像を表示し、B列以降に画像の情報(ファイル名、画像サイズなど)を表示したいです。
  • 画像のサイズをセルに合わせるか固定するかについてもアドバイスをいただきたいです。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

Sub Pict_Addは、A列にPNG画像、B列にファイル名、C列に画像サイズ、D列に画像作成日 を表示させるサンプルです。 以下は、標準モジュールにコピペしてください。 下記マクロを実装したエクセルのファイルは、必ずPNG画像を置いてあるフォルダーに保存してください。 保存してから実行してください。 Sub Pict_Deleteは、表示されたデータを消去するマクロです。 Sub Pict_Add()   Dim myPic As Shape, myC As Range, i As Long   Cells.RowHeight = 50   Columns(1).ColumnWidth = 8.38   With Application.FileSearch     .NewSearch     .LookIn = ThisWorkbook.Path     .SearchSubFolders = False     .Filename = "*.png"     If .Execute() > 0 Then       For i = 1 To .FoundFiles.Count         Set myC = ActiveSheet.Range("A" & i)         Set myPic = ActiveSheet.Shapes.AddPicture _         (.FoundFiles(i), msoTrue, msoFalse, myC.Left, myC.Top, myC.Width, myC.Height)         myC.Offset(0, 1).Value = Dir(.FoundFiles(i))         myC.Offset(0, 2).Value = FileLen(.FoundFiles(i))         myC.Offset(0, 3).Value = FileDateTime(.FoundFiles(i))       Next i     End If   End With   Rows(i & ":" & Rows.Count).AutoFit   Columns("B:D").EntireColumn.AutoFit End Sub Sub Pict_Delete()   Dim myPic As Shape   For Each myPic In ActiveSheet.Shapes     If myPic.Type = msoLinkedPicture Then       myPic.Delete     End If   Next   Columns("B:D").ClearContents End Sub

zieonweb
質問者

お礼

merlionXX さま 回答ありがとうございます。 このマクロを実行したトコロ、問題なく、思い通りのエクセルシートが出来上がりました。 スマートな回答ありがとうございます。 この回答を実行するタイミングが遅くなり、返事が遅くなって申し訳ありませんでした。 また、質問を投稿した際に、ご縁があればまたよろしくお願いします。

関連するQ&A