- ベストアンサー
セルの挿入/削除を禁止させたい
- Excelでの定型業務において、セルの挿入/削除を禁止させたい場合の方法を教えてください。
- セルの挿入/削除によるズレを防ぐ方法として、Excelでの基本的な入力作業ではセルの挿入/削除を行わない設定をすることが可能です。
- また、SQLからエクスポートしたデータを使用する場合には、セルの挿入/削除の禁止設定と共に書式設定も維持する方法が求められます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>1.基本的に入力作業ではセルの挿入/削除は行う必要ありませんので、この操作を禁止させたいのですが可能でしょうか。 Ctrl+Aですべてのセルを選択し、右クリック「セルの書式設定」の保護タブでロックのチェックを外し、校閲タブから「シートの保護」を選択してOKします。 >2.入力作業を行う場合、SQLからいったん(Accessを経由して)Excelにエクスポートしたものを使用します。よって、エクスポートした段階では罫線も引かれておらず、書式設定もされておりません。 セルの挿入/削除の禁止設定ができるのであれば、この設定もされてない状態です。 毎回エクスポートする度に上記設定をする必要がありますが、容易に設定できる方法はございますでしょうか。 新規ブックに罫線などの書式設定したシートを作成し、上記のシートの保護をして列や行の挿入をできなくしたシート(テンプレートファイル)を作成しておきます。 これにエクセルにエクスポートしたシートのデータ範囲を選択して、右クリック「コピー」、上記のテンプレートファイルで右クリック「形式を選択して貼り付け」で「値」を選択すれば、罫線などのレイアウトが整ったデータ入力ファイルを作成することができます(このファイルを名前を付けて保存すればテンプレートファイルを使いまわすことができます)。
その他の回答 (2)
- Sayakonomimoto
- ベストアンサー率19% (23/119)
当方、Excel2003です。 該当シートに書き込んでください。 ----------------- Option Explicit Private pv_TargetRange As Range Private pv_TargetAddress As String Private Sub Worksheet_SelectionChange(ByVal Target As Range) Set pv_TargetRange = Target pv_TargetAddress = Target.Address End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count <> (Target.Rows.Count * Columns.Count) Or Target.Cells.Count = (Target.Columns.Count * Rows.Count) Then If Not pv_TargetRange Is Nothing Then On Error Resume Next If pv_TargetAddress <> pv_TargetRange.Address Then If Err.Number = 0 Then Application.EnableEvents = False Application.Undo Application.EnableEvents = True MsgBox "セルの挿入は禁止されています。", vbExclamation End If End If If Not pv_TargetRange Is Nothing Then On Error Resume Next If pv_TargetRange.Address = "" Then Application.EnableEvents = False Application.Undo Application.EnableEvents = True MsgBox "セルの削除は禁止されています。", vbExclamation End If On Error GoTo 0 End If End If End If End Sub ------------------- たぶん上手く行くかな?と思います。
お礼
Sayakonomimotoさま ご回答ありがとうございます。 早速試してみましたところ、セルの挿入/削除時にメッセージが表示され禁止されました。 但し・・・ 1.セルの削除を実行する。 2.「セルの削除は禁止されています。」と表示される。 3.OKボタンを押してメッセージを閉じる。 4.当該セルに文字を入力しEnter 5.再度「セルの削除は禁止されています。」と表示される。 となりました。
- FEX2053
- ベストアンサー率37% (7991/21371)
どぞ。 http://office.microsoft.com/ja-jp/excel-help/HP010078580.aspx ちょっとややこしいので、こっちも http://excel.onushi.com/purpose/sheet-protection.htm シートのタブを右クリックして「シートの保護」をすれば基本的に オッケーです。
お礼
FEX2053さま 早速のご回答ありがとうございます。 教えて頂いたサイトを拝見しましたが、いまいち要領を得ず。 今回やりたいのは、セルの挿入/削除だけを禁止したいと考えております。 ※行の挿入/追加/削除やコピペは許可したい。 「シートの保護」でとりあえず許可する操作全てにチェックを入れてみましたが、文字入力しようとすると保護されている旨のメッセージが出てきて、文字を打つことすら出来ない状況です。。
お礼
MackyNo1さま ご回答ありがとうございます。 早速試したところ、うまくいきました!ありがとうございます。 シートの保護をしたとしても、ロックを外したセルは保護の対象外になるものと勘違いしておりました。 また、作成したテンプレートの「書式」をエクスポートしたファイルにコピーすればと考えておりましたが、これだと保護設定は別にやらないといけないので、面倒かなぁ。。って思ってたところでした。 おっしゃる通り、テンプレートの方にエクスポートしたファイルの値を貼り付ければよかったんですね。 目からウロコです。 ありがとうございました。