|
▼wen さん:
こういう方法も(一応)あります。
そのPictures.Insert方式のままで、Excelのバージョンが2010だったら
いちど「図として切り取り」図の貼り付けをしてやれば、リンクしない
通常の画像になります。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
Dim PicFile As Variant
Dim rX As Double, rY As Double
Dim ratio As Double, L As Double, T As Double
'[ファイルを開く]ダイアログボックスを表示
PicFile = Application.GetOpenFilename( _
"画像ファイル,*.jpg;*.jpeg;*.gif;*.tif;*.png;*.bmp")
If VarType(PicFile) = vbBoolean Then Cancel = True: Exit Sub
Application.ScreenUpdating = False
'画像を挿入
With ActiveSheet.Pictures.Insert(PicFile)
rX = Target.Width / .Width
rY = Target.Height / .Height
If rX > rY Then
ratio = rY
Else
ratio = rX
End If
.Width = .Width * ratio
.Height = .Height * ratio
'セルの中央(横方向/縦方向の中央)に配置
L = Target.Left + (Target.Width - .Width) / 2
T = Target.Top + (Target.Height - .Height) / 2
Dim is2010 As Boolean
is2010 = Val(Application.Version) > 13
is2010 = True
If is2010 Then 'ver14 = XL2010
.CopyPicture 'クリップボードに画像コピー
.Delete 'いったん削除
Else
.Left = L
.Top = T
End If
End With
If is2010 Then
Target.Activate
ActiveSheet.Paste
With Selection
.Left = L
.Top = T
End With
End If
Application.ScreenUpdating = True
Cancel = True
End Sub
参考まで。
|
|