【3月6日実施】システムメンテナンス実施のお知らせ

エクセルの画像ファイル名のセルをファイル名でなく
ファイル名の画像を「セルと画像を連動させて」表示させる方法ありますか?
セルの大きさは画像ファイルが表示できるサイズに調整して表示してほしいです。
手元のエクセルファイルには100の画像ファイル名が書かれたセルがあります。これを一括で処理したいです。
画像ファイル名のセルの置き換えでなく、となりのセルに画像を表示する方法でもOKです。

エクセルで「セルと画像を連動方法」は以下の記事
https://dekiru.net/article/22343/
で解説された内容と同じことを複数の画像について一括してやりたいです。

よろしくお願いします

A 回答 (1件)

こんにちは



雰囲気のみの丸投げ状態なので、詳細は勝手に解釈しました。
ですので、要領としてのサンプルのみです。

以下は、A列(A2セル以降)に画像ファイルのフルパス(=ファイル名ではありません)が入力されているとして、B列の各セルにフィットするようにその画像を表示するものです。

※ ファイル名がフルパスではなく「ファイル名」のみの場合は、指定範囲からファイルを検索するなどの処理が必要になるでしょう。
※ 入力値のチェック等は一切省いてまありすので、パスが間違っていたり、ファイルが存在しない等の場合にはエラーになりますのでご注意。

ご参考までに。

Sub Q_13434401()
Dim rw As Long, sp As Shape, c As Range
Dim w As Double, h As Double, r As Double

For rw = 2 To Cells(Rows.Count, 1).End(xlUp).Row
Set c = Cells(rw, 2)
Set sp = ActiveSheet.Shapes.AddPicture( _
Cells(rw, 1).Text, 0, 1, 0, 0, 0, 0)
sp.ScaleHeight 1, 1
sp.ScaleWidth 1, 1
sp.LockAspectRatio = 1
w = sp.Width: h = sp.Height
r = Application.Min(c.Width / w, c.Height / h)
sp.Width = w * r
sp.Left = c.Left + (c.Width - w * r) / 2
sp.Top = c.Top + (c.Height - h * r) / 2
sp.Placement = 1
Next rw

End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます
助かります!

画像ファイル名のセルは画像ファイルのフルパスにするのですね。了解です。修正しました。

>セルの大きさは画像ファイルが表示できるサイズに調整して表示
でなく
>B列の各セルにフィットするようにその画像を表示するもの
ですね。

横幅は画像ファイルの最大値を決めて予め手作業で準備するので、
セルの大きさ(高さ)を画像ファイルにより調整したいですが、できますか?

お礼日時:2023/04/19 21:50

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

このQ&Aを見た人はこんなQ&Aも見ています