Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4902 / 13646 ツリー ←次へ | 前へ→

【53695】コメントに画像 mmm 08/2/2(土) 10:56 質問[未読]
【53698】Re:コメントに画像 ホンジャマイカ 08/2/2(土) 12:02 発言[未読]
【53701】Re:コメントに画像 mmm 08/2/2(土) 20:15 お礼[未読]
【53699】Re:コメントに画像 ichinose 08/2/2(土) 12:11 発言[未読]
【53700】Re:コメントに画像 mmm 08/2/2(土) 20:08 質問[未読]
【53702】Re:コメントに画像 ichinose 08/2/2(土) 20:49 発言[未読]
【53703】Re:コメントに画像 ichinose 08/2/2(土) 21:13 発言[未読]
【53704】Re:コメントに画像 mmm 08/2/3(日) 1:42 お礼[未読]

【53695】コメントに画像
質問  mmm  - 08/2/2(土) 10:56 -

引用なし
パスワード
   XPでEXCEL2003を使用しています。
シートにボタンを配置して、コメントに画像を貼り付けたいのですが、コメントの書式設定の「色と線」タグの塗りつぶしの効果の「図」タグの図の選択のところで止めたいのですが、どうすればよいのかわかりません。
どなたか教えてください。

【53698】Re:コメントに画像
発言  ホンジャマイカ  - 08/2/2(土) 12:02 -

引用なし
パスワード
   逆に、ファイルを開くなどのダイアログを表示させ、
選択したファイルをコメントの塗りつぶしに設定する、
というのは?

【53699】Re:コメントに画像
発言  ichinose  - 08/2/2(土) 12:11 -

引用なし
パスワード
   ▼mmm さん:
>XPでEXCEL2003を使用しています。
>シートにボタンを配置して、コメントに画像を貼り付けたいのですが、コメントの書式設定の「色と線」タグの塗りつぶしの効果の「図」タグの図の選択のところで止めたいのですが、どうすればよいのかわかりません。
>どなたか教えてください。

'=================================
Sub Macro1()
  Dim flnm As Variant
  Dim shp As Shape
  On Error Resume Next
  Err.Clear
  Set shp = Selection.ShapeRange(1)
  If Err.Number <> 0 Then
    MsgBox "コメントを選択して"
  Else
    If shp.Type = msoComment Then
     flnm = Application.GetOpenFilename("図の選択 ,*.*", , "図を選択してください")
     If TypeName(flnm) <> "Boolean" Then
       shp.Fill.UserPicture flnm
       If Err.Number <> 0 Then MsgBox Err.Description
       End If
    Else
     MsgBox "コメントを選択して"
     End If
    End If
  On Error GoTo 0
End Sub

図を挿入したいコメントを選択した状態で上記のMacro1を実行してください。

【53700】Re:コメントに画像
質問  mmm  - 08/2/2(土) 20:08 -

引用なし
パスワード
   ichinoseさんありがとうございます。
早速試してみたところ、このコードはEXCELの「マクロの実行」では作動するのですが、シート上に設置したボタンにコード貼り付けて実行させようとすると、「コメント選択して」のmsgboxのところで止まって終わってしまいます。どうしてなんででしょうか?
また、出来れば、既存のコメントを選択するのではなく、そのときのactivecellに新規にコメント挿入の状態で「図を選択してください」のダイヤログを開きたいのですが。
宜しくお願いします

【53701】Re:コメントに画像
お礼  mmm  - 08/2/2(土) 20:15 -

引用なし
パスワード
   ▼ホンジャマイカ さん:
>逆に、ファイルを開くなどのダイアログを表示させ、
>選択したファイルをコメントの塗りつぶしに設定する、
>というのは?

ホンジャマイカさんありがとうございます。
そう言う方法があるんですね。ichinoseさんのコードがどうやらそれのようですね。また一つ勉強になりました。ありがとうございました。

【53702】Re:コメントに画像
発言  ichinose  - 08/2/2(土) 20:49 -

引用なし
パスワード
   ▼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にしなくても動作します。

【53703】Re:コメントに画像
発言  ichinose  - 08/2/2(土) 21:13 -

引用なし
パスワード
   訂正です。
>'=================================================
>Private Sub CommandButton1_Click()
>  Dim flnm As Variant
  on error resume next
>  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
  on error goto 0
>End Sub

追加してください。


>これでコマンドボタンをクリックすると
>アクティブセルにコメントを作成し、そのコメントに埋め込む画像選択ダイアログが
>表示されます。
>
>試してみてください。
>
>尚この場合は、
>TakeFocusOnClickプロパティは、Falseにしなくても動作します。

【53704】Re:コメントに画像
お礼  mmm  - 08/2/3(日) 1:42 -

引用なし
パスワード
   ▼ichinose さん:

色々ご指導やサンプルコードありがとうございました。
「フォーム」と「コントロールツールボックス」でボタンにそのような違いがあること全く知りませんでした。
ご指摘感謝いたします。
コードも無事確認できました。
どうもありがとうございました。
まだまだ、いろいろVBAを勉強しなければと思います。

4902 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free