|
右クリックイベントを使う方法です。
以下のコードをシートモジュールに入れ、任意の2つ以上のセル範囲を
選択し、右クリックして下さい。すでに画像を挿入している範囲に重なると、
メッセージで警告して処理を中止します。画像が挿入されてない範囲であれば、
画像ファイルを保存しているフォルダーから、ファイルを選択して開くための
ダイアログが出ますから、選択してOKして下さい。初めに選択したセル範囲に
ぴったり収まる位置・大きさで挿入することが出来ます。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, _
Cancel As Boolean)
Dim Lp As Single, Tp As Single
Dim Hp As Single, Wp As Single
Dim i As Long
Dim MyF As String
Const PicFol As String = _
"C:\Documents and Settings\User\My Documents\My Pictures"
'↑実際に画像ファイルを保存しているフォルダーのパスに変更しておく。
Cancel = True
With Target
If .Count = 1 Then Exit Sub
Lp = .Left: Tp = .Top
Wp = .Width: Hp = .Height
End With
With ActiveSheet.Pictures
If .Count > 0 Then
For i = 1 To .Count
If Not Intersect(Target, _
Range(.Item(i).TopLeftCell, .Item(i).BottomRightCell)) _
Is Nothing Then
MsgBox "そのセル範囲には画像を挿入できません", 48: Exit Sub
End If
Next
End If
ChDir PicFol
MyF = Application.GetOpenFilename("画像ファイル(*.jpg),*.jpg")
If MyF = "False" Then GoTo ELine
Application.ScreenUpdating = False
With .Insert(MyF)
.Left = Lp: .Top = Tp
.Width = Wp: .Height = Hp
End With
End With
ELine:
With Application
ChDir .DefaultFilePath
.ScreenUpdating = True
End With
End Sub
|
|