- ベストアンサー
Excel操作の質問|特定の文字が入力されると隣りのセルの色を変えたい|VBA初心者のための質問
- Excel操作の質問です。特定の文字が入力されると、その隣りのセルのシートの色が変わるようにしたい。VBA初心者です。
- タスクリストを作成している中で、特定の文字が入力されるとその隣りのセルの色が変わる機能を実装したいです。現在VBA初心者で進めることが難しい状況です。
- Excelでタスクリストを作成していますが、特定の文字が入力されるとその隣りのセルが灰色に塗りつぶされる機能を実装したいです。VBAの書き方が難しく進めることができません。どのようにすれば良いでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
NO3です。 >計算式に則って「□」から「■」になった場合は、変わりませんでした。 ⇒VBAでは変更を検知できません。 単純に「■」に変更される条件に書き換えれば可能ですが、表構成の変更都度、書き換えが必要になりますので地道に「条件付き書式設定」で設定して下さい。
その他の回答 (3)
- mu2011
- ベストアンサー率38% (1910/4994)
NO1です。 回答しましたVBAは、A列に限定せず、任意セルに"■"を入力すると右2列分セルを灰色に塗りつぶす仕様にしていますのでお試しください。
補足
mu2011さま ご回答をありがとうございました。 ”■”を入力すると、色が変わるようになりました。 ありがとうございます。 実は、ひとつ想定外のことがありました。 と言いますのは、 "□"から"■"に変わった時は、マクロが反映されないのです。 実は、「■」を入力する欄には、はじめに「□」が入力されています。 これは、タスク欄「C」にtaskが入ると、自動で「□」が表示されるようになっています。 これは、「□」と「■」の数をカウントしておくことによって、1日の仕事がどれくらい残っているかを常に確認できるようにしているためです。 ですので、「■」が入力される欄には、 =IF(DF15="","",IF(DK15="","□",IF(DK15<="0.00","■"))) のような計算式が入っています。 (DK15の欄には、そのタスクの終了時刻を入れます。つまり終了時刻が入ると、チェックボックスが「□」から「■」に変わるのです) ご教唆いただいたマクロですと、「■」を直接入力すると、たしかに隣りのセルの色が変わるのですが、計算式に則って「□」から「■」になった場合は、変わりませんでした。 やはり条件付き書式で地道にやっていくしかないのでしょうか。
- hige_082
- ベストアンサー率50% (379/747)
'ワークシートモジュールへ Private Sub Worksheet_Change(ByVal Target As Range) If Not Target.Value = "■" Then Exit Sub Target.Offset(, 1).Resize(1, 2).Interior.ColorIndex = 48 End Sub
お礼
わざわざご回答をいただきありがとうございました。 ワークシートモジュールを初めて使ってみました。 もっと勉強を進めます。 ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 (1)シートタブ上で右クリック→コード表示→右画面に以下のコードを貼り付け→VBE画面終了 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Value <> "■" Then Exit Sub Cells(Target.Row, Target.Column + 1).Resize(1, 2).Interior.ColorIndex = 15 End Sub
補足
文中、誤記がありました。 (誤) たとえば、タスクが終了すると、A2の空欄に「1」を入力することにしています。 ↓ (正) たとえば、タスクが終了すると、A2の空欄に「■」を入力することにしています。 どうぞよろしくお願いいたします。 ご指摘いただいたみなさま、ありがとうございました。
お礼
ありがとうございます。 やはり諸々制限というか限界はあるのですね。 でも、教えていただいたものを見ながら、ほかのことに応用をしています。 もっと勉強を進めます。ありがとうございました。