画像を一時的に配置して Sheet1 に非表示にしました。この方法を選択したのは、画像をドライブにローカルに保存したくないからです。
次に、現時点でシート 1 からアクティブ シートに画像を転送するボタンを備えたモードレス ユーザー フォームがあります。
これまでのところ、ワークブックを閉じる前に画像を非表示にする次のコードがあります。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim tempWs As Variant
Call HidePic
End Sub
Private Sub HidePic()
Dim tempWs As Variant
On Error Resume Next
For Each tempWs In ThisWorkbook.Worksheets
tempWs.Pictures.Visible = False
Next
End Sub
次に、次のコードが機能しますが、Sheet1 (この場合、画像が保存されている場所) でのみ機能します。別のシートに切り替えてから、ユーザーフォームのボタンを押すと; 「A1」に保存されているデータはすべて削除されますが、画像は配置/貼り付けされません。
Private Sub Pic_Click()
Dim tempWs As Variant
On Error Resume Next
For Each tempWs In ThisWorkbook.Worksheets
tempWs.Pictures.Visible = True
tempWs.Pictures.Select
Next
Selection.Cut
ActiveSheet.Range("A1").Activate
ActiveSheet.Paste
End Sub
追加情報: 短い (そして速い?) ".Cut" の代わりに "Select/Selection.Cut" を使用したのは、何らかの理由で Cut のみを使用すると画像が "A1" に配置されないためです。