• ベストアンサー

EXCEL、セルのコピー・貼り付けを禁止したい

お世話になります。 Excelにてあるツールを運用しているのですが、 セルのコピー・貼り付けを不可にする機能はないでしょうか? で、そのExcelを終了する際には可に復元するという動きが理想です。 みなさま、教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

遅くなりました。 Excelの2002などで、試験していませんが、たぶん、標準モジュールの部分を入れ替えれば大丈夫なはずです。 '----------------------------------------------------------------- Sub DisableCommandButtons(Cmd_bln As Boolean) 'コピー・貼り付けを停止させるサブルーチン・マクロ  Dim cmd As Variant  Dim Cmdb As Object  Dim CmdNames As Variant  CmdNames = Array("Worksheet Menu Bar", "Cell", "Column", "Row")  'ショートカットのインスタンス  If Cmd_bln = False Then   Application.OnKey "^c", ""   Application.OnKey "^v", ""   Application.OnKey "^x", ""  Else   Application.OnKey "^c"   Application.OnKey "^v"   Application.OnKey "^x"  End If  'コマンドボタンのEnable  For Each cmd In CmdNames  If cmd = "Worksheet Menu Bar" Then   With Application.CommandBars(cmd).Controls(2)    .Controls(3).Enabled = Cmd_bln    .Controls(4).Enabled = Cmd_bln    .Controls(5).Enabled = Cmd_bln   End With  Else   With Application.CommandBars(cmd)    .FindControl(, 19).Enabled = Cmd_bln 'Copy    .FindControl(, 22).Enabled = Cmd_bln 'Paste    .FindControl(, 21).Enabled = Cmd_bln 'Cut   End With  End If  Next cmd End Sub '-----------------------------------------------------------------

motsu2006
質問者

お礼

できました! 本当、ありがとうございました。 せっかく教えていただいたソース、自分なりに分析して自分の知識にしていく所存です。 300ポイントほど差し上げたいところですが、システム上不可能なのが残念です。 心の中では20ポイントどころではない感謝をしていますので……。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんぱんは。 >FindControl(, 19).Enabled = Cmd_bln 'Copy >↑上記ステップにて >実行時エラー'91': >オブジェクト変数または With ブロック変数が設定されていません。 少し、時間をください。一応、Excelのバージョンを教えておいてください。 それは、たぶん、ここの部分です。 For Each cmd In Array(1, 20, 24, 25) Indexの番号にしたのが間違いでした。それは、Excel全バージョンで共通ではないようです。

motsu2006
質問者

補足

再度のご回答、本当にありがとうございます。 試したのはExcel2002(自宅PC)です。 しかし、実際に実行したいのは会社の環境で、ほとんどが2003ですが2002も少数ながら混在しています。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

#3 の訂正です。 Private Sub Workbook_BeforeClose(Cancel As Boolean)  With Worksheets("Sheet1")     'プロテクトの保護を解除すれば、コピー等は出来ます。     .Unprotect Password:="xxx" '←ここ     'パスワードを入れればパスワードが必要でした。  End With End Sub なお、Application.CutCopyMode での制御は、少なくとも、Copy は効きます。 貼り付け場所を制限させるだけですから、あまり芳しくありません。 このほかにも、プロテクトせずに、ExcelのCopy/Paste のすべての機能を不可にする方法があります。 なお、以下をそれぞれのモジュールに貼り付けたら、一旦、保存して起動してください。これは、すべてのシートに適用されます。そのブックを閉じれば、機能は回復します。なお、私は、ひさびさに、この種のマクロを書いたので、抜け落ちがあるかもしれませんが、その時は、ご容赦願います。十分にテストをしてみてください。 '----------------------------------------------------------------- '標準モジュール Sub DisableCommandButtons(Cmd_bln As Boolean) 'コピー・貼り付けを停止させるサブルーチン・マクロ  Dim cmd As Variant  Dim Cmdb As Object  'ショートカットのインスタンス  If Cmd_bln = False Then   Application.OnKey "^c", ""   Application.OnKey "^v", ""   Application.OnKey "^x", ""  Else   Application.OnKey "^c"   Application.OnKey "^v"   Application.OnKey "^x"  End If  'コマンドボタンのEnable  For Each cmd In Array(1, 20, 24, 25) '"Menubar","Cell","Column","Row"  If cmd = 1 Then   With Application.CommandBars(cmd).Controls(2)    .Controls(3).Enabled = Cmd_bln    .Controls(4).Enabled = Cmd_bln    .Controls(5).Enabled = Cmd_bln   End With  Else   With Application.CommandBars(cmd)    .FindControl(, 19).Enabled = Cmd_bln 'Copy    .FindControl(, 22).Enabled = Cmd_bln 'Paste    .FindControl(, 21).Enabled = Cmd_bln 'Cut   End With  End If  Next cmd End Sub '----------------------------------------------------------------- 'ThisWorkbook モジュールへ Private Sub Workbook_Open()  Call DisableCommandButtons(False) End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean)  Call DisableCommandButtons(True) End Sub '-----------------------------------------------------------------

motsu2006
質問者

補足

コメントが遅くなって大変申し訳ありませんでした。 ご回答いただいた通りに記述してみましたが、 オープン時・クローズ時に .FindControl(, 19).Enabled = Cmd_bln 'Copy ↑上記ステップにて 実行時エラー'91': オブジェクト変数または With ブロック変数が設定されていません。 となります。 どのように変更すればよろしいでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

プロテクトの一環として考えてよろしいのでしょうか? もし、そうでしたら、VBEditor 画面を開いて、ThisWorkbook モジュールに、以下のようなマクロを登録します。一旦保存して、再度立ち上げれば、設定されています。セルの選択が出来ませんから、当然、コピーが出来ません。 'ThisWorkbook モジュール Private Sub Workbook_Open()  With Worksheets("Sheet1")     'ロックしていないセルのみ許可     .EnableSelection = xlUnlockedCells     .Protect Password:="xxx", UserInterfaceOnly:=True   End With End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean)  With Worksheets("Sheet1")     'プロテクトの保護を解除すれば、コピー等は出来ます。     .Unprotect  End With End Sub.

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

マクロでもいいなら下記のサイトが参考になります。 http://www.excel7.com/trouble19.htm

motsu2006
質問者

お礼

ご回答、ありがとうございます。 マクロで対応するつもりでいました。 他の機能についても大変参考になりました。 が、目的については正常に機能せず……。

全文を見る
すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

セルのコピー・貼り付けは不可だけど、入力はOKにしたいということですか? それなら入力を許すセルを「書式」、「セル」、「保護」でロックのチェックを外し、「ツール」でシート保護をかけてください。

motsu2006
質問者

お礼

ご回答ありがとうございます。 しかし、これでは無理のようです(すみません)。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELで可視セルのコピー貼り付け

    記憶があいまいになったので教えてください。 EXCELで単純にコピー貼り付けでは正しい処理がされず、 編集メニューのジャンプー可視セルをコピー貼り付けで正しい処理が されるのは、どういう場合だったでしょうか。

  • Excelのコピー、貼り付けがうまききません。

    Vistaを使っております。Excelで、友人から送られてきたA4の表(各セルに文字が入っています)を コピーして、新しいExcelに貼り付けますと、各セルがすごく大きくなって、しまいます。 送られてきたままのサイズで貼り付けは出来ないものなのでしょうか。教えて頂きたく、よろしくお願いいたします。

  • エクセルにコピーすると セルがまたがってしまいます

    ホームページや何かの文章をコピーして、エクセルに貼り付けをすると、セルをまたいで、貼り付けとなってしまいます。一つのセルにまとめて貼り付けしたいのに、隣のセルに次々と文字が貼り付けとなってしまいます。文章の文字にスペースがあれば 隣のセルに貼り付けとなってしまうようです。少し前に友人からもらったエクセルデーターのマクロつきのものをいじってからです。もとに戻す方法ないでしょうか?どうかよろしくお願いします。

  • excelのコピーと貼り付け

    excelでフィルターを使って折りたたんでいる状態で可視セル部分をコピーし、隣の列にコピーするにはどうしたらよいのでしょうか? 私はコピーしたい部分を選択し、[編集]→(ジャンプ)の可視セル→コピーとして貼り付けたい部分に貼り付けするのですが、うまくいきません。教えてください。

  • エクセル セルのコピーができない。

    エクセルでセルをコピー&貼付けがうまくできなくなりました。 セルをコピーしてもテキストしか認識されずに、貼り付けるとセルの書式設定等は全くついてきません。 また、行や列毎コピーして挿入することもできなくなりました。 形式を選択して貼り付けを選択すると、Unicodeテキストかテキストの2つから選ぶ画面しか出てこず、 通常の値、数式、書式設定等を選ぶ画面も出てきません。 とくに何かエクセルの設定を変えた覚えはないので、なぜこうなったのかわかりません。 どうしたら、通常のセルのコピーができるようになりますでしょうか。

  • Excelのコピー&貼り付け

    Excelのコピー&貼り付けでWin7、Office2010の場合はセル幅の違う表をコピーして 貼り付けアイコンの▼をクリックすると「元の列幅を保持」が表示するのですが、 VistaのOffice2007の場合はどこから表示させるのですか?

  • Excel2007 「書式のコピー/貼り付け」ができない

    教えてください Excel2007 「書式のコピー/貼り付け」ができません 当方が行った手順 (1)「計算式」が入力された、セル「B23」を選択 (2)ツールアイコン「書式のコピー/貼り付け」(刷毛)を選択 (3)マウスポインタが「刷毛」に変わる (4)貼り付け先、セル「H23」をクリック (5)セル「H23」は何の変化もなく、貼り付けができない 原因と対策を教えてください

  • セルのコピーアンド貼り付け

    指定のセルをコピーし別のワークシートへ貼り付けする際、 常にデータ最後の空白に貼り付けされるようにするには どうするのが宜しいでしょうか。

  • エクセルで?簡単にコピー、貼り付けしたい!

    エクセルのセルのデータを簡単にコピー、貼り付けをしたいです。 A列にタイトル B列にURL C列に本文(1つのセルに300文字適度で改行が含まれる) が約500件ほど入っているとします。 今、やっている作業はAタイトル、BURL、C本文を1つずつ手作業でコピーして別のソフトに貼り付けると言う作業を行っています。 また、Cの本文はそのままコピーして貼り付けするとダブルクォーテーションが入ってしまう為、セルの内容だけをコピーして貼り付けていると言うめんどくさい作業を行っています。 そこで質問なのですが、例えば、A1,B1,C1など各セルにカーソルにおいた状態でボタンを押せば簡単に貼り付けができるようにしたいのですが、こんな事は出来ないでしょうか? 只今、約50件ぐらいまで手作業で行ったのですが、面倒なので簡単に出来る方法を探しています。 何かいい方法はないでしょうか? よろしくお願いします。

  • エクセル上でセルのコピーペーストが出来ません。。。

    エクセル上でセルのコピーペーストが出来ません。。。 どなたかご教示いただけますと助かります もう何年もエクセルを使用していて始めての経験なのですが 私は毎日仕事でエクセルにて表を作成しております その作業中に過去と同じデータも頻繁に出てくるのでそういった場合は いくつかのセルをでコピペして使用してます (同じフォーマット上に同じセル数で) ところが最近その作業をする際にコピー元のデータのセルを纏めてコピーして コピー先に貼り付けようとすると貼り付けの表示が出ず貼り付けが出来くなることが頻発してます 他のソフト(メーラーやメモ帳)や同じエクセル上でもテキストだけのコピペは出来るのですが セルの貼り付けが出来ないようです もっと細かく言うと通常はセルをコピーするとその選択中は選択されたセルが点線でくくられ点滅しておりますが一瞬点滅した後通常の状態に戻ってしまいます ですので選択されていない状態に戻ってしまうので貼り付けが出来ないようです 更に言うとクリップボードを表示すると上記状態にもかかわらず一応ボード上にはコピー選択したセルの内容が書き込まれそれを選択すると一応コピーは出来ますのでなんとか仕事はこなせます ですが普通のいわゆるセルのコピペが手軽に出来なくて非常に困っております 本当にここ1週間くらいから頻発するようになった不具合です PC、ソフト再起動後などでは出来たりすることもあり、なんだか設定とかの問題でもないような気がします もちろんそんな特殊な設定をいじったつもりもありません 一応自動修復というのもかけてみましたが変わりません なんだかよく分からない状態です これが出ると作業が全くはかどらなくなりかなり困ってます ちなみに使用環境はVISTA(BUISINESS)のSP2というOS上でエクセル2003です どなたたかご教示いただけますと幸いです 宜しく御願い致します

専門家に質問してみよう