[[20190921173624]] 『CutCopyMode解除に関して』(chika) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『CutCopyMode解除に関して』(chika)

あるシートの指定範囲内はコピペを禁止するコードを作成しました。

指定範囲以外でCtrl+cでコピーし指定範囲外のセルを選択するとCutCopyMode解除してしまいます。ほかの動作に関して正しく動作します。

どの部分が悪さをしているのでしょうか?
ご教授お願い致します。マクロに関しては初心者なので、至らない部分があると思いますがよろしくお願いします。
以下コードです。

Private Sub Worksheet_Deactivate()

    Application.CellDragAndDrop = True
    Application.OnKey "^d"

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    On Error Resume Next
    Application.CellDragAndDrop = True
    Application.OnKey "^d"

                '▼処理対象か判定
           If Intersect(Target, Range("G26", Cells(Rows.Count, "DD"))) Is Nothing Then Exit Sub

    Application.CutCopyMode = True
    Application.CellDragAndDrop = False
    Application.OnKey "^d", ""
End Sub

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 そもそも なぜに d なんですか?

 > Application.OnKey "^d"

 ステップ実行してみると

 Application.CellDragAndDrop = True のところで

 コピー状態は解除されますね

 そういう仕様なのではないでしょうか?

 例えば オートフィルターを設定する際にも コピー状態は解除されてしまいますが
 それと同じようなものなのでは?

 やりたいことが今一つわかりません

(渡辺ひかる) 2019/09/21(土) 18:32


渡辺ひかるさんご回答ありがとうございます。

>そもそも なぜに d なんですか?

 下方向へコピーを防ぐために、ショートカットキーを無効にしました。

>そういう仕様なのではないでしょうか?
仕様ではどうしようもありませんね。

>やりたいことが今一つわかりません
チェックシートを作成しており、コピペでチェックできない体制を作るためにこのようなものを作成しています。
(chika) 2019/09/21(土) 18:53


 Ctrl + D だけ 防いでも 意味がないと思いますが・・・

 上のセルと同じ値を手入力するのはOKなのですか?

 >チェックシートを作成しており、コピペでチェックできない体制を作るためにこのようなものを作成しています。

 結局 安易に チェック済にさせたくないという事なんでしょうか?

 だとしたら、あまり効果はないような気もします。

(渡辺ひかる) 2019/09/21(土) 19:34


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.