OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

Excelの Ctrl + X を使用不可能にする方法

  • 困ってます
  • 質問No.130751
  • 閲覧数203
  • ありがとう数0
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 85% (154/181)

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

回答 (全4件)

  • 回答No.1
レベル13

ベストアンサー率 68% (791/1163)

問題はCtrl-X(切り取り)をどこで感知するかですね。 下ではワークシートのSelectionChangeで行ってみました。切り取りモードなら解除しています。当然、編集から行う切り取りもできなくなります。 切り取りをさせたくないシートのコードウインドウに貼り付けます。こんなのでいい? Private Sub Worksheet_SelectionChange(ByVal Target As E ...続きを読む
問題は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
補足コメント
takao_kw

お礼率 85% (154/181)

ご回答ありがとうございます。
このモジュールは、どこで、どのタイミングで実行させればよいのでしょう?
あまり知らないものですから・・・。
ちなみに、使用バージョンはExcel95なのですが、動作可能でしょうか?
投稿日時 - 2001-09-06 13:36:44

  • 回答No.2
レベル10

ベストアンサー率 29% (22/75)

こんな方法はいかがでしょうか?(Excel2000で動作確認しました) VBAに本文の無いマクロを記述する。 例) Text() End sub ツール(T)-マクロ(M)-マクロ(M)...でマクロ一覧を出す。 一覧のなかから作成したマクロ(ここではTest)を選び、オプション(O)...をクリック Ctrl + □ となっているので□の中に小文字でxを入れる ...続きを読む
こんな方法はいかがでしょうか?(Excel2000で動作確認しました)
VBAに本文の無いマクロを記述する。
例)
Text()

End sub

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

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

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

お礼率 85% (154/181)

ご回答ありがとうございます。
なるほど、ようは『Ctrl+X』を他の機能にすり変えてしまうわけですね。(この場合は、中身の無いモジュールの実行ですね^^)
あと、欲を言うと、ショートカットメニューの『切り取り』も使えないようにしたいのですが。。。
メニューバーの『切り取り』は殆どの人が使っていないので、どちらでもいいのですが。。。
投稿日時 - 2001-09-06 13:40:58
  • 回答No.3
レベル14

ベストアンサー率 51% (1179/2272)

標準モジュールに以下のプロシージャを登録しておきます。 Public Sub NoCtrlX() Application.OnKey "^{x}", "" End Sub Public Sub CtrlX() Application.OnKey "^{x}" End Sub で、作業の一番最初にマクロで、 ...続きを読む
標準モジュールに以下のプロシージャを登録しておきます。

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

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

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

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

お礼率 85% (154/181)

ご回答ありがとうございます。
なるほど、これは使えますね^^
ショートカットメニューの『切り取り』だけを使えなくする方法はご存知ありませんか?
投稿日時 - 2001-09-06 13:45:46
  • 回答No.4
レベル13

ベストアンサー率 68% (791/1163)

ANo.#1の追記です。 >このモジュールは、どこで、どのタイミングで実行させればよいのでしょう?  マクロを動かすとかそういうことは何もしません。セルを選択したときに勝手に動きます。 >ちなみに、使用バージョンはExcel95なのですが、動作可能でしょうか?  Excel97では確認しましたが、Excel95は手持ちがないため未確認です。コピーして試してみるのが手っ取り早いですが・・・
ANo.#1の追記です。
>このモジュールは、どこで、どのタイミングで実行させればよいのでしょう?
 マクロを動かすとかそういうことは何もしません。セルを選択したときに勝手に動きます。

>ちなみに、使用バージョンはExcel95なのですが、動作可能でしょうか?
 Excel97では確認しましたが、Excel95は手持ちがないため未確認です。コピーして試してみるのが手っ取り早いですが・・・
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ