
エクセル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
No.2ベストアンサー
- 回答日時:
ごめんなさい寝ぼけていて「形式を選択して貼り付け」を忘れていました。
あと、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
No.3
- 回答日時:
こんにちは。
すでに回答がついていますが、広範囲のメニューを探す場合には、ループが必要ですが、ひとつのメニューでは、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
'----------------------------------------
No.1
- 回答日時:
こんなもんでどうでしょうか?
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで行ごとコピー、同じ行を...
-
C+vのvは英語で何の頭文字...
-
塗りつぶしの色をコピーするには
-
WORDのグレー括弧って?
-
セルから一部だけを抜き出して...
-
エクセルでコピーしたものをコ...
-
大学生です。moodle上でのテス...
-
【エクセル】表の中の文字だけ...
-
Wordの「背景色を消す方法」教...
-
セルに値がある行のみを抽出す...
-
Excel 3列毎のセルを別の表に抽...
-
エクセルでマクロにてセル色と...
-
Wiresharkのパケットの詳細のテ...
-
EXCEL 1つ飛ばしのセル参照
-
【Excel】数式をそのまま他のシ...
-
ExcelでA列をコピーしたいので...
-
Excel2010 図としてコピー ショ...
-
マイナスの場合「xxxx-」...
-
コピペができない(LibreOffice ...
-
googleで翻訳したテキストがコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで行ごとコピー、同じ行を...
-
塗りつぶしの色をコピーするには
-
C+vのvは英語で何の頭文字...
-
WORDのグレー括弧って?
-
セルに値がある行のみを抽出す...
-
Wordの「背景色を消す方法」教...
-
大学生です。moodle上でのテス...
-
エクセルでマクロにてセル色と...
-
エクセルでコピーしたものをコ...
-
【エクセル】表の中の文字だけ...
-
セルから一部だけを抜き出して...
-
VBAのテキストボックスに文字列...
-
Excel 3列毎のセルを別の表に抽...
-
数式による空白を無視して最終...
-
コピーされたセルの文字が途中...
-
Wiresharkのパケットの詳細のテ...
-
マイナスの場合「xxxx-」...
-
教えてgooにURLの貼り方教えて...
-
EXCEL 1つ飛ばしのセル参照
-
エクセル VBA・マクロ コピー ...
おすすめ情報