- 締切済み
Excelの Ctrl + X を使用不可能にする方法
タイトル通りなのですが、Excelで『 Ctrl + X (切り取り) 』を使用できなくする方法(マクロ・VBA等)をご存知の方、教えてください。 社内のシステムをExcelで作っているのですが、多くの方が『 Ctrl + X 』を『 Ctrl + C(コピー) 』と間違えて使用してしまい、シートが破壊されてしまう現状であります。 宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- nishi6
- ベストアンサー率67% (869/1280)
ANo.#1の追記です。 >このモジュールは、どこで、どのタイミングで実行させればよいのでしょう? マクロを動かすとかそういうことは何もしません。セルを選択したときに勝手に動きます。 >ちなみに、使用バージョンはExcel95なのですが、動作可能でしょうか? Excel97では確認しましたが、Excel95は手持ちがないため未確認です。コピーして試してみるのが手っ取り早いですが・・・
- maruru01
- ベストアンサー率51% (1179/2272)
標準モジュールに以下のプロシージャを登録しておきます。 Public Sub NoCtrlX() Application.OnKey "^{x}", "" End Sub Public Sub CtrlX() Application.OnKey "^{x}" End Sub で、作業の一番最初にマクロで、NoCtrlX()を実行しておきます。 その後はずっとCtrl+Xは使えなくなるはずです。 その後、もしCtrl+Xを使いたくなったら、マクロで、CtrlX()を実行して、元に戻します。 ちょっと無理やりっぽいですが。
- koba_nob
- ベストアンサー率29% (22/75)
こんな方法はいかがでしょうか?(Excel2000で動作確認しました) VBAに本文の無いマクロを記述する。 例) Text() End sub ツール(T)-マクロ(M)-マクロ(M)...でマクロ一覧を出す。 一覧のなかから作成したマクロ(ここではTest)を選び、オプション(O)...をクリック Ctrl + □ となっているので□の中に小文字でxを入れる ~~~~~~~~ OKをクリック とすると、『Ctrl + X』 で実行文のないマクロを実行します。 マクロはpersonal.xlsなどの名前で保存して、xlstartフォルダに入れておけば毎回エクセルが立ち上がる際に起動されます。 もっと良い方法があるのかも知れませんが、私が思いついたのはこれです。 ご参考まで。
補足
ご回答ありがとうございます。 なるほど、ようは『Ctrl+X』を他の機能にすり変えてしまうわけですね。(この場合は、中身の無いモジュールの実行ですね^^) あと、欲を言うと、ショートカットメニューの『切り取り』も使えないようにしたいのですが。。。 メニューバーの『切り取り』は殆どの人が使っていないので、どちらでもいいのですが。。。
- nishi6
- ベストアンサー率67% (869/1280)
問題はCtrl-X(切り取り)をどこで感知するかですね。 下ではワークシートのSelectionChangeで行ってみました。切り取りモードなら解除しています。当然、編集から行う切り取りもできなくなります。 切り取りをさせたくないシートのコードウインドウに貼り付けます。こんなのでいい? Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) With Application If .CutCopyMode = xlCut Then .CutCopyMode = False End If End With End Sub
補足
ご回答ありがとうございます。 このモジュールは、どこで、どのタイミングで実行させればよいのでしょう? あまり知らないものですから・・・。 ちなみに、使用バージョンはExcel95なのですが、動作可能でしょうか?
補足
ご回答ありがとうございます。 なるほど、これは使えますね^^ ショートカットメニューの『切り取り』だけを使えなくする方法はご存知ありませんか?