|
▼acs さん:
まず
> Q.参照マクロで写真を貼りつけるとPC1(Win10,2010)だと問題ないのですが
> PC2(Win7,2010)はちょっとだけ大きくなり、PC3(Win7,Excel2007)だと横長になってしまいます。これは仕方のないことなのでしょうか?
私が持っている環境は win7+xl2010とwin10+xl2013 のみですが、大きさに関しては
あまり気にしたことはありません。厳密に測れば、ちょっとは差異があるのかもしれませんが。
で、xl2007 に関しては、こと、図にかんしては(それ以外にも不具合多々あるようですが)
バグだらけのようですので、比較の対象にはされないほうがよろしいかと思います。
いずれにしても A1 にのみ写真を貼り付けるサンプルです。
Sub Sample()
Dim pic As Picture
Dim f As Variant
Dim Target As Range
'A1の画像を削除
For Each pic In ActiveSheet.Pictures
If pic.TopLeftCell.Address = "$A$1" Then pic.Delete
Next
Set Target = Range("A1")
f = Application.GetOpenFilename _
("jpg bmp tif png gif,*.jpg;*.bmp;*.tif;*.png;*.gif", , "画像の選択", , False)
If f <> False Then
With ActiveSheet.Shapes.AddPicture(Filename:=f, LinkToFile:=False, _
SaveWithDocument:=True, Left:=Target.Left, Top:=Target.Top, _
Width:=-1, Height:=-1) '-1 元の大きさで貼り付け
'===============タテヨコの縮尺を保持して拡大または縮小
.LockAspectRatio = True '縦横比率の維持(念のため)
.Width = .Width * 0.3
End With
End If
End Sub
|
|