dポイントプレゼントキャンペーン実施中!

A1:B7までの表があるとします。A列B列に入力して行きます。A列入力後にB列(同行)に何かしら値が入ったら。(例えばB5)A1:B5に入力できないようにしたいのですが、その場合にどのように記述すれば良いのでしょうか。考えているのはA1:B7のロックを解除しておいてシートを保護しておく、そしてB列に入ればそこまでの範囲にロックをかけると言う感じですが。保護解除のパスワードは123とします。
Sub ロックをかける()
ActiveSheet.Unprotect"123"
Range("A1:XX).Locked=True
ActiveSheet.Protect"123"
End Sub   としたのですが、XXのところが上手くできません。

Range("B8").End(xlup)をいれて見るとエラーが出ます。そこで変数(String型)を作ってこの文でその該当セルの値を代入し、XXのところに変数を置いてみてもやはりエラーが出ます。
この表は本来もう少し大きな表で、時間外勤務を管理しようとしていて上席者がB列に承認した印に値をいれて実行するとそれまでの値が改ざんできないようにすると言うのが目的なのです。
まだまだVBAに関して勉強不足だと思いますがよろしくお願いします。

A 回答 (2件)

Range("A1:" & Range("B8").End(xlUp).Address).Locked = True


じゃだめですか?
Range("B8").End(xlUp).Address
の部分は変数置き換えでもいいと思うのですが
    • good
    • 0
この回答へのお礼

ありがとうございました。上手く行きました。

お礼日時:2008/08/15 04:26

入力の方法や順序、空欄の発生の有無とかで変わるかな。


やりたい事と表のイメージは湧くのですが・・・

シート上にコマンドボタンを設置して、クリックでシート若しくはブック全体を保護してしまうのが簡単かと思いますがダメでしょうか。
    • good
    • 0
この回答へのお礼

なんとか上手く行きました。ありがとうございました。

お礼日時:2008/08/15 04:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!