人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PowerPointのシェイプ(四角等)を右クリックしときに出る、
ポップアップメニューに「はてな」というメニューを追加するのは、
以下の3行のVBAでできます。

Sub Macro1()
CommandBars("Shapes").Controls.Add(Type:=msoControlPopup).Caption = "はてな"
End Sub

問題は、これでは「フリーフォーム」
(カクカク線)による閉図形を右クリックしても、
ポップアップメニューが出ない、ということなのです。
どのように修正したらよいか、ご教示いただけないでしょうか。

おそらく、 CommandBars("Shapes") の"Shapes" の部分を、
適切な言葉にすればいいのだと思いますが、それがわからないのです。
よろしくお願いいたします。

●質問者: lionfan
●カテゴリ:コンピュータ
✍キーワード:ADD PowerPoint sub VBA はてな
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● cx20
●300ポイント ベストアンサー

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"(システム)
◎質問者からの返答

ありがとうございます!!

とぉっっっっても助かりました!!


2 ● gong1971
●200ポイント

"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
◎質問者からの返答

了解!! 助かりました。ありがとうございます!!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ