こんにちは。たーこさんさん。
http://excelfactory.net/excelboard/exgeneral/excel.cgi?mode=all&namber=49485&rev=0 の続きですね。 (あちらは解決or迷宮入りで閉じたほうがいいと思いますが)
>あくまで参考として とはいえ、説明不足でした。不親切でしたね、ごめんなさい。
Private Sub Worksheet_Change(ByVal Target As Range) 'Tagetは値を変えたセルの事です。 If Cells(Target.Row, 4) = "" Then Exit Sub 'Tagetと同じ行の4列目のセルが未入力だったら何もしません。 Select Case Target.Column 'Tagetの列によって処理するかしないか選択します。 Case 1, 2, 3, 9 '列が1,2,3,9の場合 Target.Font.ColorIndex = 3 'Tagetの文字色を3(赤)にします。 Case Else '列がその他の場合、何もしません。 End Select '判定処理を終わります。 End Sub
ただ、前回注意点として >1)値を変更せずにF2キーで編集状態にしただけでも色が変わります。 と書いたように、根本的な解決ではないと思うのです。 VBAって一般操作でできない事をやる・・のではなくて 一般操作では手間で面倒な事を自動化できる・・って程度が多いと思います。 そのため、制限をかけたりするテクニック的なもの以前に 運用方法から見直した方がいいかもしれません。 ただ単にコードをコピーして動けばいいってもんではなく、 内容を理解して使わないと思わぬ落とし穴があるかもしれませんし。 そういう意味では安易なレスだったか・・と反省します。
この記事にはVBAのコードが含まれています。
緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他
|