画像のセルにデータがあるとして以下のような方法でいかがですか。
実際の数値は本来の場所に合わせてください。
また画像がない場合の処置はしていません。
Sub Test()
Dim SName As String
Dim i As Long, j As Long
j = 1
For i = 8 To 11
SName = Sheets("data").Cells(i, "D").Value
With Sheets("結果").Shapes(SName)
.Top = Cells(j, "A").Top
.Left = Cells(j, "A").Left
End With
j = j + 1
Next
End Sub
ワークシート上に画像を並べたいということか。
(1)画像のLeft値、 Topを値を、Heightの値や余白を考慮して位置を計算して決めるか、
(2)各セルの行の高さをバラバラにしたり、変えない前提で
例えばRange("B5").Topといった位置に頼るか2通りある。
しかし、これは初心者の課題ではない。エクセルのコアな使い方には入らないだろう。
ーー
しかしWEBを調べればすぐ
http://officetanaka.net/excel/vba/tips/tips174.htmhttp://officetanaka.net/excel/vba/tips/tips174.htm
のように判る話。
後者は上記に載っている
Sub Macro5()
ActiveSheet.Pictures(1).Top = Range("B3").Top
ActiveSheet.Pictures(1).Left = Range("B3").Left
End Sub
のようなやり方。
ーーー
Sub Macro9()
With ActiveSheet.Pictures.Insert("C:\Work\Sample1.jpg")
.Top = Range("B3").Top
.Left = Range("B3").Left
.Width = Range("B3:C3").Width
End With
End Sub
とあるのが挿入までのコード。
ーー
まず「りんご」「みかん」などの画像ファイル名を、割り出せるようにシート
(品名のある行の同行に)、データ作っておくのが、普通だろう。
そして順位に従って、行的に等間隔(?)の同列のセルに置いてゆく荷が普通だろう。その際は、算数の「数列」の考えを使う必要があろう。第n位はどのような行に来るか計算できるかな?画像のサイズにばらつきがあればどうする?