プロが教える店舗&オフィスのセキュリティ対策術

Excelの条件付き書式で、ある条件を満たすとセル色をグレーにしています。

グレーになっているセルは、書き込みが出来なくなるような処理って可能でしょうか?
もちろん大変な度合いによっては、妥協は可能です。
・色番号指定で可能かどうか
・単に色の有無だけなら可能なのかどうか

参考までに、文字色とか、フォントとか、太字かどうか等で分岐できるのか興味があります。

教えて!goo グレード

A 回答 (3件)

こんにちは


すでに回答にある通りかと思います。

>Excelの条件付き書式で、ある条件を満たすとセル色をグレーにしています。
色は表現に個人差などがありますので、より具体的でないと一致するか分かりません。実際に設定した色でコードを書く必要がありますので
VBAで設定色を調べるのが良いと思います。

A1セルに設定色が表示されている状態で調べる

Sub Color_test()
Debug.Print "Color="; Range("A1").DisplayFormat.Interior.Color; _
vbCrLf; "ColorIndex="; Range("A1").DisplayFormat.Interior.ColorIndex
End Sub


>書き込みが出来なくなるような処理
保護などを掛けない場合は、入力が出来てしまいます.
シート保護を掛ける場合でも、保護を解いて設定、シート保護を掛けるかたちになりますが、どのタイミングで行うか、少し悩ましいのではないかと思います。
シート保護を設定しないで入力させない方法が良いのではと(実際には入力しています)
Application.Undo で入力値を入力前に戻す処理が出来ます。
この場合は、Worksheet_Changeイベントになりますかね?

対象の条件書式が設定されている範囲
暫定 A1セルから A列最終行

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp))) Is Nothing _
And Target.DisplayFormat.Interior.Color = 10921638 Then
On Error Resume Next
With Application
.EnableEvents = False
.ScreenUpdating = False
.Undo
.ScreenUpdating = True
.EnableEvents = True
End With
End If
End Sub

10921638はColor_testの暫定結果
Interior.Color は RGBでも設定できます
勿論、Interior.ColorIndexでも良いかと、、、

>参考までに
#1様に同感です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
このブックをスプレッドシートでも開かれる可能性が出てきました。。。
そうするともうどうしようもないという事になりますよね。

お礼日時:2021/11/30 07:37

おはようございます。



直接の回答ではありませんが、VBAでしたら、入力用のフォームを作成
されて、それを使うという手もあるかと思います。

https://shingyouryu.xyz/excelvba-codekijutsuhen/
https://tripbowl.com/excel-vba/userform/

逆に、グレーのセルに入力したとしても、計算式やマクロ側では、その入力
された文字を参照しないとか?

SelectionChange
https://kabu-macro.com/detail.php?dir=word&dir2= …
そのセルが選ばれたら、入力できないなど表示されるとか?

セルのChangeイベント
https://tonari-it.com/excel-vba-event-worksheet- …
入力されても、判定で消去するとか?

VBAでは、処理を書けば色々な事ができると思います。ただ、作成する
にも労力がかかるので、極力少ない労力で、効果がでるのが理想かと。

もう少し具体的に説明されると、良い回答があるかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
このブックをスプレッドシートでも開かれる可能性が出てきました。。。
そうするともうどうしようもないという事になりますよね。

お礼日時:2021/11/30 07:36

こんばんは



>書き込みが出来なくなるような処理って可能でしょうか?
可能/不可能だけで言えば可能です。

シートに保護をかけた状態にしておいて、色が変わるタイミング(どのようなタイミングかご質問文からは不明ですが)で、セルのプロパティを書き込み不可にすればよいでしょう。
条件付き書式が処理されるタイミングが不明ですが、どこかのセルに入力した際や、計算が発生した時と推測されますので、その際のイベント処理で行うようにすれば可能です。

とは言え、やみくもにシート全体から対象セルを探して「書き込み不可」にするような処理方法では、効率が悪すぎます。
想像するところ、何らかの操作と関連があるのでしょうから、それに関連付けた処理ロジックを考えた方が宜しいように思います。

>文字色とか、フォントとか、太字かどうか等で分岐できるのか興味があります。
基本的にはできますが、色、フォント、太字などは、ひとつのセルの文字列の中でも各種混在できる仕様になっていますので、何かの判別に利用するのにはあまり良い策とは思えませんね。
    • good
    • 3
この回答へのお礼

ありがとうございます。
このブックをスプレッドシートでも開かれる可能性が出てきました。。。
そうするともうどうしようもないという事になりますよね。

お礼日時:2021/11/30 07:36

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

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング