プロが教えるわが家の防犯対策術!

Excelのシートに以下のマクロを組みましたが、空白でダブルクリックして、写真選択。
写真をダブルクリックで貼付けまではいいのですが、画像にリンクが設定されてしまい、
元データを削除すると、貼り付けた画像まで消えてしまいます。
マクロは、詳しくないので、貼り付ければいいようにお願いいしたいです。
よろしくお願い致します。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
Dim PicFile As Variant
Dim rX As Double, rY 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
.Height = .Height * rY
Else
.Width = .Width * rX
End If

'セルの中央(横方向/縦方向の中央)に配置
.Left = Target.Left + (Target.Width - .Width) / 2
.Top = Target.Top + (Target.Height - .Height) / 2
End With

Application.ScreenUpdating = True
Cancel = True
End Sub

A 回答 (2件)

読み飛ばしてしまいました。


>マクロは、詳しくないので、貼り付ければいいようにお願いいしたいです。
With ActiveSheet.Pictures.Insert(PicFile)
下記に変更(1行のみ)
With ActiveSheet.Shapes.AddPicture(PicFile, msoFalse, msoTrue, Selection.Left, Selection.Top, -1, -1)
各パラメーターは、リファレンス参照してください。
    • good
    • 4
この回答へのお礼

出来ました。もう本当にありがとうございました。
かなり悩んでたので、非常に助かりました。

お礼日時:2020/06/05 11:07

こんにちは、


同様のご質問が最近多い様な。。
失礼しました。

ActiveSheet.Pictures.Inserを

ActiveSheet.Shapes.AddPicture
に変更してみてください。
メソッドにおけるパラメータは、下記を参考にしてみてください。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
    • good
    • 0

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

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


このQ&Aを見た人がよく見るQ&A