ポップアップメニューに「はてな」というメニューを追加するのは、
以下の3行のVBAでできます。
Sub Macro1()
CommandBars("Shapes").Controls.Add(Type:=msoControlPopup).Caption = "はてな"
End Sub
問題は、これでは「フリーフォーム」
(カクカク線)による閉図形を右クリックしても、
ポップアップメニューが出ない、ということなのです。
どのように修正したらよいか、ご教示いただけないでしょうか。
おそらく、 CommandBars("Shapes") の"Shapes" の部分を、
適切な言葉にすればいいのだと思いますが、それがわからないのです。
よろしくお願いいたします。
http://homepage2.nifty.com/DreamyCat/Wordcommandbars.htm
「フリーフォーム」は"Curve"で指定できるようです。
Sub Macro1() CommandBars("Curve").Controls.Add(Type:=msoControlPopup).Caption = "はてな" End Sub
以下は参考情報です。
<ポップアップメニューの一覧を取得するサンプル> Sub ShowPopupMenuList() Dim bar For Each bar In Application.CommandBars If bar.Type = msoBarTypePopup Then Debug.Print Chr(34) & bar.Name & Chr(34) & "(" & bar.NameLocal & ")" End If Next End Sub
<実行結果> "Shapes"(図形) "Slider Sorter"(スライド一覧表示) "Thumbnails"(縮小表示) "Slide Gap"(スライドの間隔) "Notes Pane"(ノート ペイン) "Outliner"(アウトラインの作成) "Slide Show"(スライド ショー) "Slide Show Short Popup"(スライド ショー ショート ポップアップ) "Nondefault Drag and Drop"(ドラッグ アンド ドロップ (既定以外)) "Curve"(曲線) "OLE Object"(OLE オブジェクト) "Connector"(コネクタ) "WordArt Context Menu"(ワードアート ショートカット メニュー) "Rotate Mode"(回転モード) "Curve Segment"(線分を曲げる) "Curve Node"(結節点を曲げる) "ActiveX Control"(ActiveX コントロール) "Spelling"(スペル チェック) "Pictures Context Menu"(図ショートカット メニュー) "Canvas Popup"(Canvas Popup) "Script Anchor Popup"(スクリプト アンカーのポップアップ) "Frames"(レイアウト枠) "Notes View Slide"(ノート表示スライド) "Slide Show Browse"(スライド ショーのブラウズ) "Hyperlinked Object"(ハイパーリンクされたオブジェクト) "Tables"(テーブル) "Table Cells"(テーブル : セル) "Organization Chart Popup"(Organization Chart Popup) "Diagram"(ダイアグラム) "OrgChart Text Edit PopUp"(OrgChart Text Edit PopUp) "Comment Popup"(コメント ポップアップ) "Slide View Ink Annotation Popup"(スライド ビューのインク注釈ポップアップ) "Revision Marker Popup"(Revision Marker Popup) "System"(システム)
http://homepage2.nifty.com/DreamyCat/Wordcommandbars.htm
「フリーフォーム」は"Curve"で指定できるようです。
Sub Macro1() CommandBars("Curve").Controls.Add(Type:=msoControlPopup).Caption = "はてな" End Sub
以下は参考情報です。
<ポップアップメニューの一覧を取得するサンプル> Sub ShowPopupMenuList() Dim bar For Each bar In Application.CommandBars If bar.Type = msoBarTypePopup Then Debug.Print Chr(34) & bar.Name & Chr(34) & "(" & bar.NameLocal & ")" End If Next End Sub
<実行結果> "Shapes"(図形) "Slider Sorter"(スライド一覧表示) "Thumbnails"(縮小表示) "Slide Gap"(スライドの間隔) "Notes Pane"(ノート ペイン) "Outliner"(アウトラインの作成) "Slide Show"(スライド ショー) "Slide Show Short Popup"(スライド ショー ショート ポップアップ) "Nondefault Drag and Drop"(ドラッグ アンド ドロップ (既定以外)) "Curve"(曲線) "OLE Object"(OLE オブジェクト) "Connector"(コネクタ) "WordArt Context Menu"(ワードアート ショートカット メニュー) "Rotate Mode"(回転モード) "Curve Segment"(線分を曲げる) "Curve Node"(結節点を曲げる) "ActiveX Control"(ActiveX コントロール) "Spelling"(スペル チェック) "Pictures Context Menu"(図ショートカット メニュー) "Canvas Popup"(Canvas Popup) "Script Anchor Popup"(スクリプト アンカーのポップアップ) "Frames"(レイアウト枠) "Notes View Slide"(ノート表示スライド) "Slide Show Browse"(スライド ショーのブラウズ) "Hyperlinked Object"(ハイパーリンクされたオブジェクト) "Tables"(テーブル) "Table Cells"(テーブル : セル) "Organization Chart Popup"(Organization Chart Popup) "Diagram"(ダイアグラム) "OrgChart Text Edit PopUp"(OrgChart Text Edit PopUp) "Comment Popup"(コメント ポップアップ) "Slide View Ink Annotation Popup"(スライド ビューのインク注釈ポップアップ) "Revision Marker Popup"(Revision Marker Popup) "System"(システム)
ありがとうございます!!
とぉっっっっても助かりました!!
"Shapes" の部分を"Curve"に変えればOKです。
参考までに...
フリーフォームを右クリックした場合、4つめの「頂点の編集」が
特徴的ですよね。という訳で下記のコードを使用して調べてみました。
実行するとイミディエイト・ウィンドウ(画面下のペイン)にCommandBarsの
名前が表示されます。
For i = 1 To CommandBars.Count If CommandBars(i).Controls.Count >= 4 Then If InStr(CommandBars(i).Controls(4).Caption, "頂点の編集") > 0 Then Debug.Print CommandBars(i).Name End If End If Next
了解!! 助かりました。ありがとうございます!!
ありがとうございます!!
とぉっっっっても助かりました!!