[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『入力した文字列によりセル色を識別したい』(KI)
いつもこの学校で勉強させてもらっています。 A1:AI50の範囲内に6通りの文字列をランダムに入力する作業があります。 この、6通りの文字列が入力されたセルにそれぞれ違った色をつけたいのです。 条件付き書式でやろうとしましたが条件が3個までという事なので6通りは無理かな と諦めていました。当方、マクロは超初心者ですがマクロで何とか出来ないものでしょうか。 6通りの文字列をそれぞれ、仮にアルファベットの"A","B","C","D","E","F"とします。 但し、"E"と"F"についてはアルファベットの後ろにE1.0とかF1.5といった具合に文字が付きます "E"と"F"は固定ですが後ろにつく文字(数字)は毎回変わります。 こういった条件のもと、6通りの色別けは可能でしょうか。宜しくご教授お願いします。
こんな感じですか? (Hatch)
Sub test()
Dim myRange As Range
Dim myStr As String
Application.ScreenUpdating = False
Range("A1:AI50").Select
For Each myRange In Selection
myStr = myRange.Value
If Left(myStr, Len("E")) = "E" Then myStr = "E"
If Left(myStr, Len("F")) = "F" Then myStr = "F"
Select Case myStr
Case "A"
myRange.Interior.ColorIndex = 1
Case "B"
myRange.Interior.ColorIndex = 2
Case "C"
myRange.Interior.ColorIndex = 3
Case "D"
myRange.Interior.ColorIndex = 4
Case "E"
myRange.Interior.ColorIndex = 5
Case "F"
myRange.Interior.ColorIndex = 6
End Select
Next myRange
Application.ScreenUpdating = True
Cells(1, 1).Select
End Sub
衝突しました。 いつもHatchさんに先手をとられますなぁ。(つまり、私の対応がVV(鈍い))(笑) 折角作ったんで置いときます。
Sheet1のモジュールに貼り付けて試してくだはい。
Arrayの中身を検索する最低限の文字に変えたらそれに対応します。
また、Arrayの中身を増やす事も減らす事も可能です
ほな...(弥太郎)
'---------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim tbl As Range
Dim target_color
If Target.Count > 1 Then Exit Sub
Set tbl = Range("a1:ai50")
If Intersect(Target, tbl) Is Nothing Then Exit Sub
target_color = Array("A", "B", "C", "D", "E", "F")
For i = 0 To UBound(target_color)
If Target Like "*" & target_color(i) & "*" Then
Target.Interior.ColorIndex = i + 3
Exit For
End If
Next i
End Sub
(Hatch)さん(弥太郎)さん早速の回答有難うございます。 感激です。キッチリと6色に色分けできていました。 これで、お盆明けからの仕事が随分とレベルアップ出来ます。 本当に有難うございました。感謝感謝 (KI)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.