|
▼りん さん:
早速、すばらしいコードをご提供いただきありがとうございます。
画像をオートシェルに入れるように考えていました。
いただいたコードを一部変更を加え次のようにさせていただきました。
Sub test()
Dim s1 As String
Dim CC As Long, RR As Long, Rpos As Long
Dim r1 As Range, sp As Shape, ws As Worksheet
Dim i As Integer, m As Integer, Filename
'
s1 = "ADH" 'ループする列を示す文字
Set ws = Application.ActiveSheet
i = 6
m = 1
For RR = 1 To 2 'とりあえず2回
Rpos = RR * 4 + 2 '6,10(,14・・・)
For CC = 1 To 3
Set r1 = ws.Cells(Rpos, Mid(s1, CC, 1)) '図形を作成するセル
With r1
'とりあえずセルと同じサイズ四角形を追加
Set sp = ws.Shapes.AddShape(msoShapeRectangle, _
.Left, .Top, 50, 50)
'四角形に何かする時はspに対して処理
' sp.Fill.ForeColor.SchemeColor = 3 '色を塗る
Filename = _
ThisWorkbook.Path & "\data\" & Cells(i, 10).Value
sp.Fill.UserPicture Filename
End With
i = i + 1
m = m + 1
Next
Next
'終了
Set sp = Nothing: Set r1 = Nothing: Set ws = Nothing
End Sub
一応、思っていた感じに写真が入りました。しかし自分で変更を加えながら、意味が分かっていないのです・・・
Set sp = ws.Shapes.AddShape(msoShapeRectangle, _
.Left, .Top, 50, 50)
のコードはセルの左上の角に当て、50角と理解して良いのでしょうか。
この時の単位は何なのでしょうか?
後一点お聞きしたいのですが、Rectangleの連番が、操作をすればどんどん数字が加算されていきますが、
例えば「四角形1」から「四角形6」(とりあえず)をつけようと変数mを利用しようとしましたが、どの位置につけてもエラーになっています、これは可能でしょうか? お時間が許せば、よろしくお願いします。
|
|