
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.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様に同感です。
ありがとうございます。
このブックをスプレッドシートでも開かれる可能性が出てきました。。。
そうするともうどうしようもないという事になりますよね。
No.2
- 回答日時:
おはようございます。
直接の回答ではありませんが、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では、処理を書けば色々な事ができると思います。ただ、作成する
にも労力がかかるので、極力少ない労力で、効果がでるのが理想かと。
もう少し具体的に説明されると、良い回答があるかもしれません。
ありがとうございます。
このブックをスプレッドシートでも開かれる可能性が出てきました。。。
そうするともうどうしようもないという事になりますよね。
No.1
- 回答日時:
こんばんは
>書き込みが出来なくなるような処理って可能でしょうか?
可能/不可能だけで言えば可能です。
シートに保護をかけた状態にしておいて、色が変わるタイミング(どのようなタイミングかご質問文からは不明ですが)で、セルのプロパティを書き込み不可にすればよいでしょう。
条件付き書式が処理されるタイミングが不明ですが、どこかのセルに入力した際や、計算が発生した時と推測されますので、その際のイベント処理で行うようにすれば可能です。
とは言え、やみくもにシート全体から対象セルを探して「書き込み不可」にするような処理方法では、効率が悪すぎます。
想像するところ、何らかの操作と関連があるのでしょうから、それに関連付けた処理ロジックを考えた方が宜しいように思います。
>文字色とか、フォントとか、太字かどうか等で分岐できるのか興味があります。
基本的にはできますが、色、フォント、太字などは、ひとつのセルの文字列の中でも各種混在できる仕様になっていますので、何かの判別に利用するのにはあまり良い策とは思えませんね。
ありがとうございます。
このブックをスプレッドシートでも開かれる可能性が出てきました。。。
そうするともうどうしようもないという事になりますよね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel 条件によって入力禁止にする
Excel(エクセル)
-
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
VBAでセルの上書き禁止出来るでしょうか?
Access(アクセス)
-
-
4
ドロップダウンリスト 自動表示したい
Excel(エクセル)
-
5
土日祝を空白にする関数を教えてください
Excel(エクセル)
-
6
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
7
マクロ 実行ボタンを押さずに常に実行
Excel(エクセル)
-
8
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
9
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
10
【Excel VBA】 条件付き書式の結果、グレーアウトされたセルの値を削除したい
Excel(エクセル)
-
11
【VBA】シート上の複数のチェックボックスのうちどれか一つでも変更した場合のイベント
Visual Basic(VBA)
-
12
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
13
セルの上書き禁止について
Excel(エクセル)
-
14
VBA実行後に元のセルに戻りたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
エクセルvbaで、別シートの最下...
-
特定のセルが空白だったら、そ...
-
Excelで指定した日付から過去の...
-
VBA実行後に元のセルに戻りたい
-
Excel VBAで、 ヘッダーへのセ...
-
Excelのプルダウンで2列分の情...
-
VBAでセルをクリックする回...
-
DataGridViewでコードで値を入...
-
エクセルVBAでコピーして順...
-
Excel vbaで特定の文字以外が入...
-
DataGridViewのセル編集完了後...
-
screenupdatingが機能しなくて...
-
EXCELのVBA-フィルタ抽出後の...
-
VBA初心者です。結合セルを保持...
-
実行時エラー438 オブジェクト...
-
セルに画像挿入すると、右セル...
-
VBAでセルに値が入ったときにイ...
-
Application.Matchで特定行の検索
-
VBAで検索して指定の位置に行を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
特定行の色を変えたい(FlexGrid)
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
VBA実行後に元のセルに戻りたい
-
Application.Matchで特定行の検索
-
”戻り値”が変化したときに、マ...
-
VBAでセルをクリックする回...
-
任意フォルダから画像をすべて...
-
Excel VBAで、 ヘッダーへのセ...
-
TODAY()で設定したセルの日付...
-
【Excel VBA】指定行以降をクリ...
-
Excel vbaで特定の文字以外が入...
-
ExcelのVBAで数字と文字列をマ...
-
Excel VBA、 別ブックの最終行...
-
DataGridViewの各セル幅を自由...
-
VBA ユーザーフォーム ボタンク...
-
連続する複数のセル値がすべて0...
おすすめ情報