Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


58992 / 76732 ←次へ | 前へ→

【22455】Re:入力に反映してセルに色をつける
発言  ichinose  - 05/2/21(月) 12:41 -

引用なし
パスワード
   ▼もち さん:
こんにちは。

> シート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以降で
確認してみて下さい。
例題は、赤で塗りつぶしました。

条件付書式を工夫してもできるかもしれません。

確認してみて下さい。

1 hits

【22453】入力に反映してセルに色をつける もち 05/2/21(月) 12:03 質問
【22455】Re:入力に反映してセルに色をつける ichinose 05/2/21(月) 12:41 発言
【22456】Re:入力に反映してセルに色をつける 訂正 ichinose 05/2/21(月) 13:09 発言

58992 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free