Wordの右クリックメニューにマクロを追加・削除するマクロ | みんなのワードマクロ

みんなのワードマクロ

ワードマクロで、文書作成とオフィス事務を効率化!!

先日公開した「右クリックでGoogle! 」には、右クリックメニューを追加したり削除したりカスタマイズできるようになっていました(「右クリックメニューの追加と削除の方法 」ご参照)。

今回は、そこで使われているコードをご紹介します。

▼このマクロでできること
右クリックメニューにお好みのマクロを追加・削除できます。

現在Wordで使うことができるマクロが登録対象になりますから、Normalテンプレートに記載したものに加え、アドインでオンにしたマクロも登録の対象になります。

追加できるマクロは、[Alt] + [F8] で表示されるマクロ全部です。

便利になりますから、お試しを。


▼右クリックメニューについての豆知識
右クリックメニューは、選択されている対象・カーソル位置によって、表示する内容が変化します。

例えば、カーソルが表の中にある場合と、通常の文中では、右クリックメニューが変化しますね。

また、通常の文中であっても、適用されれているスタイルによっても表示される右クリックメニューが変化します。

このような場合分けは、実は90種類あります。

右クリックメニューは手動で追加できます(Word2003まで。2007以降は不明です。。。)。

方法は、畠山先生の動画 をご覧ください(外部リンクです)。


▼マクロの解説
追加用と削除用のそれぞれを紹介します。

どちらにも、赤文字でメニューの削除項目が入っています。

追加する場合でも、重複してしまわないように、いったんメニューを消してから追加するようにしています。

青文字部分で、追加するマクロの設定です。

Beforeオプションで位置を指定できます。

Caption オプションに表示するメニュー名称を記載し、OnAction オプションに実行するマクロ名を記載します。

黒文字部分(For Nextステートメント)で、メニューの登録を90種類に対して実行しています。


▼マクロ(メニューを追加)

すべてのツールバーに挿入してしまいます。
問題がございますので、ご利用を控えてください。

Sub Generate_Menu()
  '右クリックメニューの一括追加
  Dim myBar As CommandBar
  On Error Resume Next
  For Each myBar In Application.CommandBars
    With myBar
      .Controls("Google詳細検索...").Delete
      With .Controls.Add(Type:=msoControlButton, Before:=4)
        .Caption = "Google詳細検索..."
        .OnAction = "vct_Google_詳細検索"
      End With
    End With
  Next
End Sub



▼マクロ(メニューを削除)
Sub Delete_Menu()
  '右クリックメニューの一括削除
  Dim myBar As CommandBar
  On Error Resume Next
  For Each myBar In Application.CommandBars
    With myBar
      .Controls("Google詳細検索...").Delete
    End With
  Next
End Sub



▼関連記事
マクロコードの登録方法

ツールバーのボタン登録

右クリックメニューの追加と削除の方法  (右クリックでGoogle! の機能紹介)