[[20140616123429]] 『条件付き書式のリストを選んだとき、セルをロック』(金時山) ページの最後に飛ぶ

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

 

『条件付き書式のリストを選んだとき、セルをロックするにはどうしたらよいですか?』(金時山)

たとえば、A列に条件付き書式のリストを配置して、ロック、解除とリストの内容を作り、
A2のセルのリストでロックを選ぶとC2とG2のセルがロックし、
A2のセルで、解除を選ぶとC2とG2のセルのロックを解除するにはどうしたらよいでしょうか。
A列すべてに条件付き書式が入り、C列とG列のすべてに制御がかかかるものとします。
見当がつきませんので、まことに申し訳ありませんが、教えていただきたいのです。よろしくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 >条件付き書式のリストを

 えっと、入力規則のリストですね?

 >リストでロックを選ぶとC2とG2のセルがロック

 セルのロックというのはセルの書式設定→保護タブにあるロックの事ですか?
 ここにチェックを入れるとシートが保護された時にセルの変更ができなくなりますが
 その切替をしたいという事でいいのでしょうか?
(コナミ) 2014/06/16(月) 14:36

コナミさんありがとうございます。
誤解してました。A列には、条件付き書式ではなく、
データの入力規則のリストでした。申し訳ありません。
普段はシート全体に、シート保護をかけてあり、
選択すると、その行の列のロックがかかったり、解除されるやり方なのです。
ごめんどうおかけします。

(金時山) 2014/06/16(月) 15:14


 なるほど。

 ご希望の内容ですとVBAになるかと思いますが、私はそちらはさっぱりですので
 どなたかVBAの分かる方の回答をお待ちください。
 補足いただいた内容で、大分質問内容がわかってきましたので回答がつくのではないかと
 思います。
(コナミ) 2014/06/16(月) 15:57

 シートモジュールに下記コードを貼り付け後戻って試してみてください。
 複数の一括セル変更には対応していません。
Private Sub Worksheet_Change(ByVal Target As Range)
Const p As String = "****" '実際の保護解除パスに変更
Dim a As Range
With Target
    If .Count * .Column = 1 Then
        Me.Unprotect Password:=p
        Set a = Union(.Offset(, 2), .Offset(, 6))
        a.Locked = IIf(.Value = "ロック", True, IIf(.Value = "解除", False, a.Locked))
        Me.Protect Password:=p
    End If
End With
End Sub
(Jera) 2014/06/16(月) 16:44

Jeraさん、言われた通り試してできました!
ほんとうに、ありがとうございました。
このために時間割いていただき、みなさまに感謝申し上げます。
(金時山) 2014/06/17(火) 08:56

コメント返信:

[ 一覧(最新更新順) ]


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