プロが教える店舗&オフィスのセキュリティ対策術

タイトル通りなのですが、Excelで『 Ctrl + X (切り取り) 』を使用できなくする方法(マクロ・VBA等)をご存知の方、教えてください。
社内のシステムをExcelで作っているのですが、多くの方が『 Ctrl + X 』を『 Ctrl + C(コピー) 』と間違えて使用してしまい、シートが破壊されてしまう現状であります。
宜しくお願い致します。

A 回答 (4件)

問題は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なのですが、動作可能でしょうか?

補足日時:2001/09/06 13:36
    • good
    • 0

こんな方法はいかがでしょうか?(Excel2000で動作確認しました)


VBAに本文の無いマクロを記述する。
例)
Text()

End sub

ツール(T)-マクロ(M)-マクロ(M)...でマクロ一覧を出す。
一覧のなかから作成したマクロ(ここではTest)を選び、オプション(O)...をクリック
Ctrl + □
となっているので□の中に小文字でxを入れる
~~~~~~~~
OKをクリック
とすると、『Ctrl + X』 で実行文のないマクロを実行します。

マクロはpersonal.xlsなどの名前で保存して、xlstartフォルダに入れておけば毎回エクセルが立ち上がる際に起動されます。

もっと良い方法があるのかも知れませんが、私が思いついたのはこれです。
ご参考まで。

この回答への補足

ご回答ありがとうございます。
なるほど、ようは『Ctrl+X』を他の機能にすり変えてしまうわけですね。(この場合は、中身の無いモジュールの実行ですね^^)
あと、欲を言うと、ショートカットメニューの『切り取り』も使えないようにしたいのですが。。。
メニューバーの『切り取り』は殆どの人が使っていないので、どちらでもいいのですが。。。

補足日時:2001/09/06 13:40
    • good
    • 0

標準モジュールに以下のプロシージャを登録しておきます。



Public Sub NoCtrlX()
Application.OnKey "^{x}", ""
End Sub

Public Sub CtrlX()
Application.OnKey "^{x}"
End Sub

で、作業の一番最初にマクロで、NoCtrlX()を実行しておきます。
その後はずっとCtrl+Xは使えなくなるはずです。

その後、もしCtrl+Xを使いたくなったら、マクロで、CtrlX()を実行して、元に戻します。
ちょっと無理やりっぽいですが。

この回答への補足

ご回答ありがとうございます。
なるほど、これは使えますね^^
ショートカットメニューの『切り取り』だけを使えなくする方法はご存知ありませんか?

補足日時:2001/09/06 13:45
    • good
    • 0

ANo.#1の追記です。


>このモジュールは、どこで、どのタイミングで実行させればよいのでしょう?
 マクロを動かすとかそういうことは何もしません。セルを選択したときに勝手に動きます。

>ちなみに、使用バージョンはExcel95なのですが、動作可能でしょうか?
 Excel97では確認しましたが、Excel95は手持ちがないため未確認です。コピーして試してみるのが手っ取り早いですが・・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!