![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.3ベストアンサー
- 回答日時:
回答No2です。
その後よく考えましたら次のようにマクロを組み合わせることでできることが判りました。初めに例えばA列について条件付き書式を設定して例えば10以上の数値でしたらセルに色を付けることにします。
その後にシート全体を選択して右クリックし、「セルの書式設定」の「保護」のタブでロックのチェックを消します。次いで[校閲]タブで「シートの保護」をクリックして何らのパスワードを設定することなしにOKします。
マクロの設定ですがシート見出しで該当のシート名で右クリックして「コードの表示」を選択します。表示の白い窓には次のコードを入力します。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Value >= 10 Then
Target.Select
ActiveSheet.Unprotect
Selection.Locked = True
ActiveSheet.Protect
End If
End Sub
このようにすることでA列で10以上の数値を入力した後ではそのセルの数値が変更できなくなります。他のセルには数値を入力することができます。
この回答への補足
詳細に教えて頂きありがとうございます。
VBAは私には難解で経験ありません。
これを機会に勉強してみようと思います。
まずは、教えて頂いた方法をトライしてみます。
詳細に教えて頂きありがとうございます。
VBAは私には難解で経験ありません。
これを機会に勉強してみようと思います。
まずは、教えて頂いた方法をトライしてみます。
No.5
- 回答日時:
条件付き書式はセルやフォントに色を着けることは出来ても、セルにロックをかける機能が無いのは常識。
条件付き書式で出てくる対話画面を見れば明白。条件付き書式は、「セルの値」に絡めて書式を左右させるものだが、質問者の言うのでは、セルの値に応じてセルにロックをかけることが出来るか、ということになるが、操作ではそういうことは出来ない。
セルの値に対する条件にもどって、個別のセルに保護をかけられるか、(操作では面倒なので)そしてそれはVBAで出来るか、という問題になる。
質問者は、エクセル操作のみを考えていて、VBAの経験が無いのだろうが
http://www.officepro.jp/excelvba/sheet_ope/index …
など読んで見ると良い。
上記WEBのように、何を許すのかは多種の観点があり、何も許さないのか質問には書いてない。認識をしてない証拠。
上記の「セルの保護については、ロックされたセルが対象となります。セルはデフォルトでは全てロックされているので、特に設定変更をしていなければ全てのセルが保護の対象となります。特定のセルのロックを解除するには『ロックの解除』を参照して下さい。 」が関連してくるが、
範囲を決めて
ロックしないセルにロックを解除し、この際条件を効かす
シートを保護する
で解除してないセルは、入力等自由になる。
ーー
例データ Sheet1 A2:C5
1491
2234
537
1417
で
Sub test01()
Worksheets("Sheet1").Unprotect
Cells.Select
Selection.Locked = False
For Each cl In Range("A2:C5")
If cl > 10 Then
cl.Locked = True
End If
Next
Worksheets("Sheet1").Protect Contents:=True
End Sub
を実行で10より大の、14,23,17のセルは変更できなくなる。
しかし他のセルは10以上の値にも変更出来る。
そして、値が10以上に変更されたら、そのセルに対してロックを実行する必要がある。
(エクセルの条件付き書式だとセルの値に対して、変更即時反応性があり、ありがたいが、VBAでは自分で面倒を見ないとならない)
それはセルのChangeイベントで捉えることになると思うが、質問者には範囲外と思うので、省略。
詳細に教えて頂きありがとうございます。
VBAは私には難解で経験ありません。
これを機会に勉強してみようと思います。
まずは、教えて頂いた方法をトライしてみます。
No.4
- 回答日時:
#1です
チョッと読み違えていたようです、すみません
条件付き書式では、ロックの制御は出来ません
手動になります
マクロでも条件付き書式の条件を捉えるのは難しいです
代替案です
ワークシートイベントとで近いことが出来ます
bookを新規作成して試してみてください
sheet1のシートタブを右クリック、コードの表示を選択
カーソル位置へ下記マクロをコピペ[X]で画面を閉じる
準備
sheet1を選択、[Alt]+[A]でセルすべてを選択し
セルの書式で保護タブのロックのチェックを外す
入力、条件
sheet1のA1:E10の範囲で、セルの値が1~10であれば
セルを黄色にして、ロックをかける
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count <> 1 Then Exit Sub
If Intersect(Target, Range("a1:e10")) Is Nothing Then Exit Sub
ActiveSheet.Unprotect
If Target.Value > 0 And Target.Value <= 10 Then
Target.Interior.ColorIndex = 6
Target.Locked = True
Else
Target.Interior.ColorIndex = 0
Target.Locked = False
End If
ActiveSheet.Protect
End Sub
興味があれば試して見てください
参考まで
詳細に教えて頂きありがとうございます。
VBAは私には難解で経験ありません。
これを機会に勉強してみようと思います。
まずは、教えて頂いた方法をトライしてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで年月日データから下二桁...
-
エクセルで特定のセルを表示の...
-
Excelで、セル内改行もそっくり...
-
EXCELでセルを選択中に、ウィン...
-
エクセルで文字の上に重ねがき...
-
エクセルのセルが縦方向にのびる
-
エクセルでセルに何も入力して...
-
Excelで来月以降の日付のセルを...
-
エクセル 関数 セルの値が0...
-
セルA1とB1の数値が一致しな...
-
Excel 「選択範囲で中央」に設...
-
投票用紙が作りたいんですが、...
-
ワードの表の中に文字を入れる...
-
エクセル 2つのセル内の数字の...
-
エクセル 条件付書式の結果が...
-
エクセル「折り返して全体を表...
-
横書きで縦の波線の書き方
-
【Excel】セルの中の文字の下の...
-
エクセルで名簿作り・・均等割...
-
エクセルのセルに「=A13」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで年月日データから下二桁...
-
エクセルのセルが縦方向にのびる
-
エクセルで特定のセルを表示の...
-
Excelで、セル内改行もそっくり...
-
エクセル 関数 セルの値が0...
-
ワードの表の中に文字を入れる...
-
エクセルのセルに「=A13」...
-
横書きで縦の波線の書き方
-
Excelで来月以降の日付のセルを...
-
エクセルでセルに何も入力して...
-
Excelの条件付き書式で、計算式...
-
エクセルで文字の上に重ねがき...
-
セルA1とB1の数値が一致しな...
-
【Excel】セルの中の文字の下の...
-
concatenate関数で片方のセルの...
-
EXCELでCELL一杯の文字を書きた...
-
Excelで2進数の表示
-
エクセルで名簿作り・・均等割...
-
Excelで前ゼロを取る方法
-
Excel2007での英語の月名を数字...
おすすめ情報