エクセルで貼り付けの際、値の貼り付けのみ、許可したい。

エクセルで貼り付けの際、値の貼り付けのみ、許可したい。 複数の人が操作する共有のエクセルファイルがあります。 他のエクセルシートのデータをコピーして、その共有ファイルのシート(保護がかかっている)に貼り付けをする際、ctrl+Vや右クリックで”貼付”をする人がいます。 すると、書式まで一緒にコピーしてしまいます。取説はあるのですが、読まずにしてしまいます。 そのため、貼り付けは”値”でのみ許可したいです。 貼り付け作業をするシートは複数あります。 その特定のシートだけでも良いですし、ファイル全体を”値”の貼り付けのみ”許可”する、でもよいです。 VBAを使って何か方法はないでしょうか。

補足

説明不足で申し訳ございません。 コピー元のデータは、条件付き書式や数式付きのデータはありません。書式の変更を防ぎたいので、なにか良い方法はないでしょうか。

Excel | Visual Basic60閲覧

ベストアンサー

1

字数制限のため再アップします。 とりあえず、EnterキーやCtrl+Vや貼り付けボタンクリックでの単純ペーストは防げます。 ただし、貼り付けのオプションを間違えて選択された場合は防げません。 取説を読まない人への注意喚起にはなると思います。 ブック全体に有効にするには、Workbook_SheetChangeイベントに シート単位の場合は、Worksheet_Changeイベントに 下記コードを置いて下さい。 Dim RNG As Range, LastAction Dim IDX, CSC Const SearchWord = "元に" '---(A) For Each CSC In CommandBars("Standard").Controls     If InStr(CSC.Caption, SearchWord) <> 0 Then         IDX = CSC.Index     End If Next LastAction = Application.CommandBars("Standard").Controls(IDX).List(1) If LastAction = "貼り付け" Then     Application.EnableEvents = False     MsgBox "単純な貼り付けは出来ません" & vbCr & "「値」の貼り付けオプションを選択して下さい。"     Application.Undo     Application.EnableEvents = True End If 【注意】 日本語版以外のエクセルやMacでは恐らくエラーを起こします。 日本語版エクセルでもメーカーのビルトインの一部はエラーを起こすかもしれません。 このあたりは、マシンの個体差が反映されるので仕方の無い所です。 万全とは行きませんが、一応の対応策です。 1.エクセルのタイトルバー左の「元に戻す」ボタンにマウスを合わせる     (クリックしてはいけません) 2.ポップアップの文章を記録 3.2の先頭2~5文字程度を、コードの(A)部分の「元に」と入れ替える 逆に2の最初の2文字が「元に」の場合は、このままでOKです。

1人がナイス!しています

ThanksImg質問者からのお礼コメント

本当にありがとうございました。 業務も、心もすっきりしました。 本当に本当にありがとうございました。

お礼日時:9/26 11:25