[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ドラッグアンドドロップによる切り取りの禁止』(マクロ学び)
シートモジュールに下記のコードを書いて、切り取りできないようにしましたが
ドロップアンドドラッグでは切り取りが出来てしまい、条件付き書式が他のセルに貼り付けされてしまいます。
ドロップアンドドラッグ自体を禁止してしまうとオートフィルなどが使えなくなってしまうのでドラッグアンドドロップでの切り取りを禁止する方法はありますでしょうか。教えていただければ幸いです。
If Application.CutCopyMode = 2 Then '切り取り禁止
MsgBox "切り取りは使用できません", vbExclamation
Application.CutCopyMode = 0
< 使用 Excel:Excel2019、使用 OS:Windows11 >
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Application.CutCopyMode = xlCut Then Application.CutCopyMode = False End If End Sub
でどうでしょうか。
右クリックしてメニューを見ると「貼り付けオプション」がグレーアウトして選択できないのが分かる。
(IT) 2023/07/14(金) 16:34:45
Application.CellDragAndDropを切らずに、ドラッグアンドドロップを無効化する。と。 しかもフィルハンドルは使いたい。という事ですよね。 気持ちは(めっちゃ)分かるけど「どっちも」は無理でしょ ^^;
壊されると困るのなら ドラッグアンドドロップと共にフィルハンドルを使えなくする。 操作を制限される方が困るってんなら 書式なんてものはぶっ壊される前提で編集を許可する。 どっちかじゃないですか?
前者の方が対策としてはお手軽でイイですね。 (Workbook_ActivateとWorkbook_Deactivateで切り替える等) Application.CellDragAndDropを切り替えると、CutCopyModeも強制的に False になりますから 他ブックからコピペとか、他ブックへコピペという操作への対策にもなります。
後者の場合なら、壊されちゃった後の復旧作業を、 ユーザー自身が任意のタイミングで実行できる仕組みを考える事になるでしょうか。 ([書式リセット]や[数式リセット]をマクロで作って実行ボタンを配置する等) メンドイでしょうけど、ユーザーにとっては自由度が確保されてウケは良さそうですネ。
(白茶) 2023/07/14(金) 16:38:29
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Application.CutCopyMode = xlCut Then Application.CutCopyMode = False MsgBox "切り取りは使用できません", vbExclamation End If End Sub
(IT) 2023/07/14(金) 17:15:23
ITさん、白茶さんご返信ありがとうございます。
>ITさん Application.CutCopyModeですと、出来ないみたいです。一応、マクロの記録で 見てみましたが、Selection.cutになっていたのに不思議です(^^;
>白茶さん やはりどっちもというのは厳しいみたいですね。おっしゃる通りフィルハンドルも制限しようと思います。
お二人ともありがとうございます! (マクロ学び) 2023/07/14(金) 17:28:33
(IT) 2023/07/14(金) 19:31:38
横から失礼。
試してみました。 ドラッグアンドドロップを実行しても、 Application.CutCopyMode は False(0)のままで xlCutにならないので、 ドラッグアンドドロップの抑止にはつながらない、 ということですよね。 当方: Win10,Excel2019 の環境です。 (xyz) 2023/07/15(土) 11:58:12
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.