エクセル ルーチンマクロ
エクセルにて、コピー貼付を禁止するマクロを、教えてGooの過去のQ&Aから、参照させていただきました。
'---------------------------------------------------------------
Sub DisableCommandButtons(Cmd_bln As Boolean)
'コピー・貼り付けを停止させるサブルーチン・マクロ
Dim cmd As Variant
Dim Cmdb As Object
Dim CmdNames As Variant
CmdNames = Array("Worksheet Menu Bar", "Cell", "Column", "Row")
'ショートカットのインスタンス
If Cmd_bln = False Then
Application.OnKey "^c", ""
Application.OnKey "^v", ""
Application.OnKey "^x", ""
Else
Application.OnKey "^c"
Application.OnKey "^v"
Application.OnKey "^x"
End If
'コマンドボタンのEnable
For Each cmd In CmdNames
If cmd = "Worksheet Menu Bar" Then
With Application.CommandBars(cmd).Controls(2)
.Controls(3).Enabled = Cmd_bln
.Controls(4).Enabled = Cmd_bln
.Controls(5).Enabled = Cmd_bln
End With
Else
With Application.CommandBars(cmd)
.FindControl(, 19).Enabled = Cmd_bln 'Copy
.FindControl(, 22).Enabled = Cmd_bln 'Paste
.FindControl(, 21).Enabled = Cmd_bln 'Cut
End With
End If
Next cmd
End Sub
'---------------------------------------------------------------
このマクロを実行した所、コンテキストメニュー及びショートカットキーのコピー、貼付が無効になりました。
しかし、マクロを有効にしたエクセルファイルを閉じても、他のエクセルファイルもコピー、貼付が無効になってしまいました。
コピー、貼付を有効にするためのマクロを動かさないとダメなのか?と思い、色々試してみたのですが、うまくいきません。
EnableCommandButtons というマクロを別に作り
ショートカットのインスタンスの
If Cmd_bln = False Then を
If Cmd_bln = True Then に
書き換えて、実行した所、ショートカットキーは有効になったのですが
コンテキストメニューのコピー、貼付を有効にするやり方がわかりません。
どなたか、助けていただけないでしょうか?
よろしくお願い致します。
お礼
早速、回答いただきありがとうございました。 *.XLBを検索して、削除しましたが、改善されませんでした。 他に方法がありましたら、回答をお願いします。