| 
    
     |  | ▼もち さん: こんにちは。
 
 > シート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以降で
 確認してみて下さい。
 例題は、赤で塗りつぶしました。
 
 条件付書式を工夫してもできるかもしれません。
 
 確認してみて下さい。
 
 
 |  |