[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『指定したセルに新たに入力できない様にしたい』(エクセル初心者)
既に入力したセルの内容を間違って変更したくない場合、そのセルにアクセスできない様にする方法は有りますか。
< 使用 Excel:Excel2007、使用 OS:Windows8 >
参考HPです。
http://www.atmarkit.co.jp/ait/articles/0709/28/news153.html
(カリーニン) 2015/09/02(水) 17:15
最初に「間違えて入力」した場合は、修正できませんけど、いいのですか?
(β) 2015/09/02(水) 17:22
>またこの規制の解除方法もお願いいたします。
解除方法もリンク先に記載されております。 (カリーニン) 2015/09/02(水) 18:05
シートの保護、保護の解除についてはカリーニンさん紹介のページをよく読んで理解しておいてください。 以下は、ブックを開いたときに指定シート(コードでは、仮に "Sheet1" にしてあります) で何かしら値あるいは式が入力されているセルは変更禁止。 そのほかのセルはブックを閉じるまで自由に変更可能にしています。
ただしシートには保護がかかっています。通常の操作は、だいたいできるようにしているつもりですが
・こんな操作ができなくなった ・この操作は禁止したいのにできてしまう
というところがあれば指摘願います。
1.Alt/F11 でVBE画面を呼び出す。 2.左上のプロジェクトエクスプローラのThisWOrkbook をダブルクリック 3.でてきたところに以下のコードを貼り付け。シート名は実際のものに打ち直してください。 4.画面右上のXボタンでシートに戻る 5.いったん保存して、再度開いてみてください。
Private Sub Workbook_Open() With Sheets("Sheet1") '★ .Protect DrawingObjects:=False, Contents:=True, Scenarios:= _ False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _ AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _ :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _ AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _ AllowUsingPivotTables:=True, UserInterfaceOnly:=True .Cells.Locked = False On Error Resume Next .UsedRange.SpecialCells(xlCellTypeConstants, 23).Locked = True .UsedRange.SpecialCells(xlCellTypeFormulas, 23).Locked = True On Error GoTo 0 End With
End Sub
(β) 2015/09/02(水) 19:20
Private Sub Workbook_Open()
With Sheets("Sheet1") '★ .Protect DrawingObjects:=False, Contents:=True, Scenarios:= _ False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _ AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _ :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _ AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _ AllowUsingPivotTables:=True, UserInterfaceOnly:=True .Cells.Locked = False On Error Resume Next .UsedRange.SpecialCells(xlCellTypeConstants, 23).Locked = True .UsedRange.SpecialCells(xlCellTypeFormulas, 23).Locked = True On Error GoTo 0 End With
End Sub
が出てきます。sheet名は実際の作業中の名前に変更しました。
このコードはどこに貼り付けたらよろしいのでしょうか?
何か手続きが違っているのでしょうか。
(エクセル初心者2号) 2015/09/07(月) 10:53
>このコードはどこに貼り付けたらよろしいのでしょうか?
参考HPです。
http://www.sanynet.ne.jp/~awa/excelvba/kouza/chapt_01/sec08_01.html
(カリーニン) 2015/09/09(水) 19:43
ちゃんとβさんが書かれてますね。
> 1.Alt/F11 でVBE画面を呼び出す。 > 2.左上のプロジェクトエクスプローラのThisWOrkbook をダブルクリック > 3.でてきたところに以下のコードを貼り付け。シート名は実際のものに打ち直してください。 > 4.画面右上のXボタンでシートに戻る > 5.いったん保存して、再度開いてみてください。 (カリーニン) 2015/09/09(水) 19:45
ThisWorkbookをダブルクリックしてこのモジュールがでてくるわけですから貼り付け先は間違っていませんね。 カリーニンさんからも念押しいただいていますが、一度保存して、開いていただいてますか?
それとも、開き直しても、保護以外のセルの書式設定ができないということですか? そのセルに、値を入力するのはできますか?
いずれにしても、こちらでは、非保護セルなら、入力であれ、書式設定であれ、問題なくできますけど?
(β) 2015/09/09(水) 20:20
今までの経過報告を読ませていただくと、ちゃんと閉じて、再度開いておられるようですね? 不思議です。
これがいいかどうかは、わからないのですが、アップしたコードで処理されたシートでは、 逆に【保護セルの書式設定も可能】なんですが?
エクセルバージョンの違いでしょうかねぇ?
xl2007は持っていないので確認できませんが、win8.1+xl2013、win7+xl2010 で確認済みです。
(β) 2015/09/10(木) 07:34
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.