- ベストアンサー
マクロ(メニュー選択できないような)を教えてください。
エクセル2003や2007でセル上で右クリックしたときに、 表示されるインスタントメニューで、切り取り(T) をグレー表示にして選択できないようなマクロを次のようにしてあります。 同様に、コピー(C)、貼り付け(P)、形式を選択して貼り付け(S)もグレー表示にして選択できないようにしたいと思います。 マクロ記述を教えてください。よろしくお願いします。 Sub MenuOff() Dim CBar Set CBar = Application.CommandBars("Cell").Controls With CBar For i = 1 To .Count If (.Item(i).Caption Like "切り取り*") Then .Item(i).Enabled = False Exit For End If Next i End With End Sub
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
ごめんなさい寝ぼけていて「形式を選択して貼り付け」を忘れていました。 あと、Exit For は それほど必要性を感じなかったのではずしました。 Sub MenuOff() Dim CBar Set CBar = Application.CommandBars("Cell").Controls With CBar For i = 1 To .Count If (.Item(i).Caption Like "切り取り*") Then .Item(i).Enabled = False ElseIf (.Item(i).Caption Like "コピー*") Then .Item(i).Enabled = False ElseIf (.Item(i).Caption Like "貼り付け*") Then .Item(i).Enabled = False ElseIf (.Item(i).Caption Like "形式を選択して貼り付け*") Then .Item(i).Enabled = False End If Next i End With End Sub
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 すでに回答がついていますが、広範囲のメニューを探す場合には、ループが必要ですが、ひとつのメニューでは、IDで、プロパティを変えていけばよいと思います。 '------------------------------------------- '標準モジュールが良い Sub Main() ControlAvailable False '戻す時は、True を指定 End Sub Sub ControlAvailable(flg As Boolean) With Application.CommandBars("Cell") .FindControl(, 19).Enabled = flg 'コピー .FindControl(, 21).Enabled = flg '切り取り .FindControl(, 22).Enabled = flg '貼付け .FindControl(, 755).Enabled = flg '形式を選択-貼付け End With End Sub '----------------------------------------
お礼
ありがとうございました。どうも2007では右クリックメニューは、VBAでカスタマイズできないようです。
こんなもんでどうでしょうか? Sub MenuOff() Dim CBar Set CBar = Application.CommandBars("Cell").Controls With CBar For i = 1 To .Count If (.Item(i).Caption Like "切り取り*") Then .Item(i).Enabled = False ElseIf (.Item(i).Caption Like "コピー*") Then .Item(i).Enabled = False ElseIf (.Item(i).Caption Like "貼り付け*") Then .Item(i).Enabled = False Exit For End If Next i End With End Sub
お礼
ありがとうございました。どうも2007では右クリックメニューは、VBAでカスタマイズできないようです。