|
▼もち さん:
こんにちは。
> シート1
> A B
>1 名前 席番号(入力例:A-3 S-10 など)
>2 名前 席番号
>3 名前 席番号
>------------------------------------
>シート2
> A B C D E F G H
>1 2 3 A 4 5
>2 2 3 B 4 5
>3 1 2 3 C 4 5 6
>4 1 2 3 D 4 5 6
>-----------------------------
>と入力されているとして、
>例えばシート1の B1 のセルに C-3 と入力されたら、
>シート2の D-3 に自動で色がつくようにしたいのです。
>よろしくお願いします。
シート1のB列に例えば、C-3と入力されたら
C-3-----シート2のセルC3の一つ右列のセル----セルD3を塗りつぶす
ということですよね?
シート1のモジュールに
'======================================================
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rtarget As Range
Dim crng As Range
Dim color_rng As Range
On Error Resume Next
Set rtarget = Application.Intersect(Target, Range("b:b"))
If Not rtarget Is Nothing Then
For Each crng In rtarget
Err.Clear
Set color_rng = Worksheets("シート2").Range(Join(Split(crng.Value, "-"), ""))
If Err.Number = 0 Then
color_rng.Offset(0, 1).Interior.ColorIndex = 3
End If
Next
End If
On Error GoTo 0
End Sub
こんなコードで塗りつぶしてくれます。
Split関数やJoin関数を使っていますからExcel2000以降で
確認してみて下さい。
例題は、赤で塗りつぶしました。
条件付書式を工夫してもできるかもしれません。
確認してみて下さい。
|
|