[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『切り取りができないようにしたいです』(コウ)
リストの件では皆さん有難うございました。 今度は上記の件、教えて下さい。 数式の入っているセルは保護がかかっているのですが、数式が参照している セルを切り取りされてしまうと当然数式がおかしくなります。 「コピーはいいですが切り取りはしないで」とお願いしたところで守られません。 単語検索で下記がひっかかり、指示どおりThisWorkbookにコピーして試しましたが、 切り取りできてしまいます。
[[20041206203715]]『コピーを出来なくする方法』(困った班長)
どなたかお知恵をお願いします。
マクロは分かりませんが、参照セルも保護しちゃうというのはダメですか? 手作業だと、 @ Ctrl+G >セル選択>「数式」にチェック>OK A この状態のまま、さらに Ctrl+G >セル選択>「参照元」「すべてのレベル」にチェック>OK で、参照元セルのすべてが選択されますので、これらのセルを保護(^^) (代奈)
多分これのことであると推測しますが、 ↓ 【1】保護ではなくて、セル間の切り取り、コピー、貼り付け を一切キャンセルしてしまうマクロ。 ThisWorkbookモジュールへ貼り付けます。 '////////////////////////////////////////////////////////////////// Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) Application.CutCopyMode = False End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.CutCopyMode = False End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window) Application.CutCopyMode = False End Sub '////////////////////////////////////////////////////////////////// 切り取りはできます。ただし、 切り取りの動作そのものを抑制するものではなく、そのあとのほかのシート、 ほかのブックへの貼り付け動作を抑制するものです。従って、コピーもできません。 現実問題としては、「あれこれしてはいけない」は絶対に守ってくれないので、 移動されても有効な数式設計(セル参照を絶対参照、名前付セル範囲にするなど) あるいはデータ入力だけですむような(計算のことまで考えさせない) ブックデザインなどが必要かと思います。 (みやほりん)
代奈さん有難うございます。でも切り取りして貼り付けると やはり計算式の参照先が壊れてしまいした。 みやほりんさん、切り取りできてしまったので動作しないと思いましたが、 貼り付けが出来なくなるんですね。 確認したら確かにコピーもできなくなってしまいます。 切り取り限定にする事は出来ないんでしょうか? 切り取りとコピーとではCutCopyModeの戻り値が違うようなので。 ちょっとやってみたのですが、どうもうまくいきません。 どうしても無理なら、ファイルを開く都度、正しい計算式を保存した行から コピーし直すようにしようかと思います。 (コウ)
強引にマクロで「切り取り」のショートカットメニュー、ツールバー上のボタン およびショートカットキーを無効にするとか・・
自分でメニューを追加してまで、使う人はいないでしょう・・?
(INA)
正しく保護されていれば切り取れないはずです。 [[20041028124024]] この方法で、ロック後、シートまで保護されましたか? (代奈)
代奈さん、何故出来ないんでしょう?参照式が入っているシートで行うんですよね? データを入力するシートは別のシートなのがいけないんでしょうか? INAさんのおっしゃることができればベストですが、私にはその能力が まだまだ足りないです。 これでもちょっとずつは成長していると思うのですが・・・ 教えて欲しいです。 ちなみにファイル全体ではなく、あるシートでだけそういう設定もできるのでしょうか? (コウ)
うっ。。。(ーー;) な、何故できないんでしょうね。。。
>参照式が入っているシートで行うんですよね? そう。。。てか、シートが違う??? んんん、参照式って、違うシートを参照してるんですか? そうなると手作業では出来るのかしら(T_T) だって、あらかじめ名前がつけられていれば、参照元セルへジャンプできるけど、 そうでなければ、「該当するセルが見つかりません」って出るよね(>_<) じゃぁ、先に名前をつければって話になるのでしょうけど、それってそれって。。。 手作業じゃ、てか、私のスキルでは無理です(ーー;)
やっぱり。。。VBAになるのでしょうか。。。 (代奈@がっくり)
> 切り取り限定にする事は出来ないんでしょうか? >あるシートでだけそういう設定もできるのでしょうか? ということなので、下記のようにすれば可能であると思います。 シートモジュールへ下記コードを張り付け。
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Application.CutCopyMode = xlCut Then Application.CutCopyMode = False End If End Sub Win98Excel2000での検証で、切り取り動作の時のみFalse設定にされるのが 確認できました。 (みやほりん)
みやほりんさん、有難うございました!! 書きたかったコードが能力不足でうまく書けてなかっただけなんですね。 似てるようで全然違うんですよね。自分でやるのは難しいです。 真似しながらちょっとずつ覚えているんですが 超初心者から抜け出せないです・・・
代奈さんも有難うございました。VBAは難しいですよね。 でも代奈さんも私には遠い存在です。。。 これでも社内ではエクセル使える方なんだけどな。 でも関数だけでは足りないんですよね。機能もVBAも頑張ろうっ!!
(コウ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.