[[20091010103732]] 『EXCEL 2003で入力後、セルの内容を改ざ』(タカタカホーク) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『EXCEL 2003で入力後、セルの内容を改ざんできないようにするには』(タカタカホーク)

セルの保護方法や入力後の保護についてはすでに答えがたくさん出てますが、
手続きが面倒なので、
 
はじめは自由に入力出来るようにしておき、
ある縦に連続する数個の空白セルにデータを入力後、特定のセルを押したら、
自動的に、入力済のセルだけが一切変更ができなくなる(もちろん入力済以外のセルは入力できる)ようにしたいのです。

紙にエンピツで文字を書く(この場合は消しゴムで消せる)のではなく、紙にボールペンで文字を書く(消せない)イメージですね。

マクロをどのように組んだら良いかわかりません。
教えてください。


 >マクロをどのように組んだら良いかわかりません。教えてください。
 どのように「教え」ればよいのでしょう?

 事前に該当シートの全セルのLockを解除してから

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim ある縦に連続する数個の空白セル As Range, ある一定のせる As Range
 Set ある縦に連続する数個の空白セル = Range("A1:A20")
 Set ある一定のせる = Range("b10")
 If Target.Address = ある一定のせる.Address Then
     Me.Unprotect
     On Error Resume Next
     ある縦に連続する数個の空白セル.SpecialCells(2).Locked = True
     On Error GoTo 0
     Me.Protect
 End If
 End Sub
 (seiya)

早速 ご回答ありがとうございます。
やってみます。(タカタカホーク)

質問の説明がわるかったようで、seiyaさん。スミマセン。
うまくいきませんでした。A1〜A20に入力し、B10をクリックすると
A1〜A20以外のセルにも入力できなくなってしまいます。
 質問が説明不足だったので、再度書きます。次のような入力とセルに自動ロックが出来るようなマクロプログラムを書いて欲しいのです。

@エクセルのファイルを開いたとき、

  A3〜A5は空白で、A10に予め入力と書いてある。
 B3〜B5は空白で、B10に予め入力と書いてある。
 C3〜C5 〃      C10    〃
 D3〜D5 〃      D10    〃
  以下同様です。
A最初にA3〜A5の全部又はその一部に入力し、A10のセルでEnterを押す。
BA3〜A5の背景色が黄色になり、そこは入力できなくなる。
(B3〜B5、C3〜C5、D3〜D5 以下同様は入力できる状態です。)
C次にB3〜B5の全部又はその一部に入力し、B10のセルでEnterを押す。
DB3〜B5の背景色が黄色になり、そこは入力できなくなる。
(C3〜C5、D3〜D5 以下同様は入力できる状態です。)
Eファイルを保存する。
Fファイルを開くと、このときは、A3〜A5とB3〜B5の背景色は黄色で入力ができない。
 (C3〜C5、D3〜D5 以下同様は入力できる状態になっている)
GC3〜C5の全部又はその一部に入力し、C10のセルでEnterを押す。
HC3〜C5の背景色が黄色になり、そこは入力できなくなる。   以下同じ。

VBAプログラムを小さくするために、たとえばA1 や A1、B1,・・・に入力前に押すセルをもうけるとか、列を入力するセルをつけてくださっても結構です。


 > A1〜A20以外のセルにも入力できなくなってしまいます。

 > 事前に該当シートの全セルのLockを解除してから

 にしていますか?
 (seiya)

seiya様
再度やって見ましたが上手く行きません。
私がやったことは、
@A1〜D20の範囲を選んで右クリックし、セルの書式決定を選び、次に保護タブを選んでロックを外しました。
Aツール-保護でシートが保護されていないことを確認しました。
B教えていただいたVBAでA1〜A10に入力し、B10をアクテイブにすると、
 A1〜A10以外のセル(たとえばC5)も入力できなくなってしまいました。
Cツール-保護でシートの保護状況を見るとシートが自動的に保護されていました。
 どうもそのあたりが原因ではないでしょうか?
D自動的に保護されたシートの保護をはずすと、今度はA1〜A10のセルにも入力で来てしまいます。これでは目的が達せられません。何か私の操作に誤りがあるのでしょうか?


 seiyaさんのコード、ならびにタカタカホークさんの手順を
再現してみますと、B10を選んだときに、A1:A20は入力できませんが、
B1:D20は入力できる状態になります。つまり、コードは問題ないです。
 
seiyaさんのコードをタカタカホークさんが変更しているか、
>A1〜D20の範囲を選んで右クリックし、セルの書式決定を選び、次に保護タブを選んでロックを外しました。
この部分が書いておられるとおりになっていないか、
どちらかの可能性。
 
>シートが自動的に保護されていました。 どうもそのあたりが原因ではないでしょうか? 
保護しないと「内容を改ざんできないようにする」と言うことが実現できませんので、
シート保護は必要条件です。
(みやほりん)(-_∂)b

 せっかくマクロを作っても
 A1〜D5  〜以下同様(1行目から5行目)まで入力していまうと
 その後使い物にならないように感じるんだけど、それでも良いんですかね?
 (nanako)

 みやほりんさん、フォローありがとうございます。

 タカタカホークさん
 >事前に該当シートの全セルのLockを解除してから
                    ^^^^^^
 と書きましたが?

 みやほりんさんも言われていますが、セルの保護をするには
 シートの保護無しではできません。
 保護する際にパスワードを設定してやればよいと思いますが?

 それと、最初から全てを質問しないでまず簡易版を作成させた
 という事は、あとで自分で修正する自信があったのではないのですか?
 (seiya)

タカタカホークより。
皆さんありがとうございます。
seiyaさんがいうとおり簡易版ができれば何とかなると
思ったのですが、甘かったです。
再度検討してみます。

 ↓続きです。
[[20091018211511]]『改ざん防止プログラムを作ったのですが、今一エレガントでありません。』(タカタカホーク) 

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.