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

Sub 画像挿入()

ActiveSheet.Unprotect Password:="pass"

Application.Dialogs(xlDialogInsertPicture).Show

If Dialog1.Show Then
With ActiveSheet.Pictures(1)


.Top = Range("D31").Top
.Left = Range("D31").Top

Selection.ShapeRange.IncrementLeft -126#
Selection.ShapeRange.IncrementTop 21.75


End With

ActiveSheet.Protect Password:="pass", DrawingObjects:=True, _
contents:=True, UserInterfaceOnly:=True

End Sub

現在、ダイアログ表示で画像を貼り付けられるように設定しています。

2点質問があり、お答えしていただければと思います。

まず、ダイアログ表示時にキャンセルを押した場合エラーメッセージが
出てきますので、キャンセルを押した場合にダイアログが閉じるように
設定する。

2点目が、間違えて貼り付けてしまった画像を削除する事。
保護をマクロの後にしますので、貼り付けてしまったらその画像を
選択して削除が出来ません。
削除ボタンで貼り付けた画像を削除したいのですがいい方法は
ございますでしょうか?

緊急ですのでどなたかお答え頂けますでしょうか、よろしくお願い致します。

A 回答 (2件)

1点目



Application.Dialogs(xlDialogInsertPicture).Show


Dim rtn
rtn = Application.Dialogs(xlDialogInsertPicture).Show
If rtn = False Then Exit Sub

にすればOK

2点目
> 削除ボタンで貼り付けた画像を削除したいのですが

削除ボタンって何ですか?
自前のマクロを走らせるボタンなのであれば、マクロで保護解除したらどうですか?
    • good
    • 0
この回答へのお礼

参考にさせて頂きました、何とかなりそうです。

削除ボタンって言うのは貼り付けたあとに、削除を押すと
貼り付けた画像が消えるというマクロです。

こちらも解決に向かっています、ありがとうございました。

お礼日時:2008/07/14 16:35

あまり良くない案かもしれませんが



Sub try()
  If Application.Dialogs(xlDialogInsertPicture).Show Then
    With ActiveSheet
      .Unprotect Password:="pass"
      Selection.OnAction = "deltest"
      .Protect Password:="pass", _
           DrawingObjects:=True, _
           contents:=True, _
           UserInterfaceOnly:=True
    End With
  End If
End Sub

Sub deltest()
  If MsgBox("del?", vbOKCancel) = vbOK Then
    ActiveSheet.Pictures(Application.Caller).Delete
  End If
End Sub

...と、Pictureに削除マクロを登録、という手もありますね。
貼り付け位置はその時のActiveCellです。
適当にアレンジしてください。
    • good
    • 0
この回答へのお礼

上記同様大変参考になりました。


操作自体は難しくなく、何とかなりそうです。
お二人ともありがとうございました。

お礼日時:2008/07/14 16:36

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