エクセルにて、コピー貼付を禁止するマクロを、教えて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 に
書き換えて、実行した所、ショートカットキーは有効になったのですが
コンテキストメニューのコピー、貼付を有効にするやり方がわかりません。
どなたか、助けていただけないでしょうか?
よろしくお願い致します。
No.3
- 回答日時:
3連投すみません。
引数付きSubプロシージャに初めて出会いました。
当初、Cmd_bln のTrue、Falseの切り替えがどうなっているのか解りませんでした。
マクロの実行方法を試していて、下記のように引数を与えて呼び出せばよいことが分かりました。
試してみてください。
Sub test2()
DisableCommandButtons True
End Sub
No.1
- 回答日時:
取りあえず下記マクロを実行してみてください。
コンテキストメニューが復活しないでしょうか。
Sub test()
Excel.Application.CommandBars("cell").Enabled = True
Excel.Application.CommandBars("Row").Enabled = True
Excel.Application.CommandBars("Column").Enabled = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別シートのマクロを実行する方法
-
Application.Runエラー(1004)
-
Access終了時にマクロまたはVBA...
-
エクセルのマクロボタンが編集...
-
シート保護を掛けたまま並べ替...
-
エクセルのマクロ
-
ACCESS2000の終了時に自動で実行
-
マクロとモジュールの違いを教...
-
ExcelのVBAでDisplayalertsで警...
-
今日の日付の範囲を指定して印...
-
特定のシートだけ印刷はマクロ...
-
エクセル VBA SendKeys ループ...
-
アクセス:検索フォームボタンに...
-
Exel 2003 にて「今日」を条件...
-
アクセスでauto_openは使えない?
-
「Access」のフォームを...
-
Excel2003でシート保護(オート...
-
三四郎、列の再表示の方法教え...
-
Excel2010のステータスバーを消...
-
エクセル ルーチンマクロ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのマクロボタンが編集...
-
別シートのマクロを実行する方法
-
Access終了時にマクロまたはVBA...
-
Application.Runエラー(1004)
-
シート保護を掛けたまま並べ替...
-
エクセルVBAで、ボタンの文字を...
-
access2010 コマンドまたはアク...
-
マクロ 戻るボタンを押したらシ...
-
InputBox内の表示について
-
特定のシートだけ印刷はマクロ...
-
ExcelのVBAでDisplayalertsで警...
-
マクロが登録できません
-
エクセル VBA SendKeys ループ...
-
今日の日付の範囲を指定して印...
-
AccessでExcelファイルを印刷
-
プロシージャが大きすぎます!
-
エクセルのマクロ
-
Workbook_Openを起動時以外に呼...
-
アクセス:検索フォームボタンに...
-
特定マクロが実行されたか確認...
おすすめ情報