こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル/シート保護でドラッグ&ドロップを不可としたいのです。

エクセル2000です。
データを入力させるためのいくつかのセルを色を変え、ロックをはずしてシートを保護をかけたのですが、ロックされていないセル同士では、ドラッグ&ドロップでセルが上書きされます。
ロックしていないセル同士なのでデータが上書きされることだけでは別に問題はないのですが、ドラッグ&ドロップだとドラッグされた元のセルの書式(色)が無くなってしまいます。
そして何よりも一番困るのは、上書きされたセルを参照している計算式が、#REF!エラーになってしまうことと、ドラッグされた元のセルを参照している数式のセル番地が変わってしまうことです。

入力は可能でドラッグ&ドロップを不可とする方法はないでしょうか?
なお、入力データが同一な数値の連続ということもあるのでオートフィルはできた方がありがたいのですが、ドラッグ&ドロップを不可とする都合上できなるなるならやむをえません。

なにとぞ良い解決方法をご教示ください。

投稿日時 - 2008-10-09 09:57:07

QNo.4388391

困ってます

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

Excelのオプションで
「フィルハンドルおよびセルのドラッグ&ドロップを使用する」
のチェックを外して「OK」で、ドラッグ&ドロップが禁止できます。
ただし、フィル入力もできなくなります。

オートフィルしたいときはメニューから実行すれば良いでしょう。
Excel2007なら
[ホーム]タブの[編集]グループで[フィル]→[連続データの作成]を実行します。
旧Excelなら
メニューバーの[編集]→[フィル]→[連続データの作成]を選択します。

マクロでシートが選択されたら
Private Sub Worksheet_Activate()
  Application.CellDragAndDrop = False
End Sub
して
非選択になったら
Private Sub Worksheet_Deactivate()
  Application.CellDragAndDrop = True
End Sub
で元に戻せば便利だとおもいます。

投稿日時 - 2008-10-09 10:31:34

お礼

ご丁寧にありがとうございます。
複数シートにまたがるのと、このBOOKをひらいていると他のBOOKでドラッグできなっても困るので、以下のようにしたところうまくいきました。

ありがとうございました。

Dim dd As Boolean

Private Sub Workbook_Open()
dd = Application.CellDragAndDrop
If dd Then Application.CellDragAndDrop = False
End Sub

Private Sub Workbook_Activate()
Application.CellDragAndDrop = False
End Sub

Private Sub Workbook_Deactivate()
Application.CellDragAndDrop = dd
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CellDragAndDrop = dd
End Sub

投稿日時 - 2008-10-09 11:27:02

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

エクセルの[ツール]-[オプション]からドラッグ&ドロップ編集を禁止すれば良いのでは?

投稿日時 - 2008-10-09 10:02:29

お礼

さっそくありがとうございます。
オプションで「ドラッグ&ドロップ編集を禁止」っていうのがあったんですね!
存じませんでした。

ありがとうございます。

投稿日時 - 2008-10-09 11:04:46

あなたにオススメの質問