| 
    
     |  | ▼mmm さん: こんばんは。
 
 
 >早速試してみたところ、このコードはEXCELの「マクロの実行」では作動するのですが、シート上に設置したボタンにコード貼り付けて実行させようとすると、「コメント選択して」のmsgboxのところで止まって終わってしまいます。どうしてなんででしょうか?
 
 >ボタンにコード貼り付けて実行させようとすると
 シートに貼り付けるボタンには、
 コマンドバー「フォーム」にあるボタンと
 コマンドバー「コントロールツールボックス」にあるコマンドボタンの二つが
 考えられますが どちらですか?
 
 こういう記述をきっちりすることを心がけてください。
 
 コマンドバー「コントロールツールボックス」にあるコマンドボタン
 
 で試されたのですね?
 
 だとしたら、このこのコマンドボタンのプロパティのひとつに
 TakeFocusOnClick というのがありますから、既定値はTrueですから、
 Falseに変更して試して見てください。
 
 因みにコマンドバー「フォーム」にあるボタンでは、
 正常に処理されましたよ!!
 
 
 >また、出来れば、既存のコメントを選択するのではなく、そのときのactivecellに新規にコメント挿入の状態で「図を選択してください」のダイヤログを開きたいのですが。
 
 コントロールツールボックスのコマンドボタンを使っているようなので
 
 コマンドボタン(仮にCommandbutton1とします)を配置した
 シートのモジュールに
 
 '=================================================
 Private Sub CommandButton1_Click()
 Dim flnm As Variant
 With ActiveCell.AddComment
 .Visible = True
 flnm = Application.GetOpenFilename("図の選択 ,*.*", , "図を選択してください")
 If TypeName(flnm) <> "Boolean" Then
 .Shape.Fill.UserPicture flnm
 If Err.Number <> 0 Then MsgBox Err.Description
 End If
 End With
 End Sub
 
 これでコマンドボタンをクリックすると
 アクティブセルにコメントを作成し、そのコメントに埋め込む画像選択ダイアログが
 表示されます。
 
 試してみてください。
 
 尚この場合は、
 TakeFocusOnClickプロパティは、Falseにしなくても動作します。
 
 |  |