ここから本文です

【再】エクセルのマクロについての質問です。

kan********さん

2009/12/2503:25:46

【再】エクセルのマクロについての質問です。

合格率に応じてその行の色が自動的に変更するようなマクロを
教えていただきましたが、
□ | C | D | E | F | G

4 |大学|試験日 |名前|判定 |クラス
5 |●大|2月1日 |佐藤|A判定|3組
6 |△大|3月20日|山田|B判定|2組
7 |■大|3月12日|山田|E判定|1組

上記のように判定をF列に書くような変更は可能でしょうか。

For Each r In Range("F5", Cells(Rows.Count, 5).End(3))
※B2→F5、2→5と変更しました

Range("C" & r.Row).Resize(, 5).Interior.ColorIndex = Color
※A→C、4→5と変更しました

自分なりに考え、変更してみたのですが、
F5に入力して、B5セルを選択する(押す)と色が変わるという
謎のマクロになってしまいました・・・
(F5より下の行は色すらつきませんでした)

どのようにすればよろしいでしょうか?
かなり勉強不足ですが、困っていますので助けてください・・・
よろしくお願いいたします。


*判定の部分はリストで選んで入力しているのですが、
この場合リストで選んだだけでは色は変わらず、
Enterを押すと変わるということで合っていますでしょうか?

閲覧数:
225
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

yuu********さん

2009/12/2503:57:30

マクロの知識をお持ちなのですね。

変更箇所はほぼ正解です。ただ、よーく考えてみてください。

>For Each r In Range("F5", Cells(Rows.Count, 5).End(3))
※B2→F5、2→5と変更しました。

初めのB2→F5は正解です。問題はその次です。F列は左から数えて・・・・・・・何番目・・・・・・でしょうか・・・?

もうお分かりですね。

正解は5ではなく6ですね!惜しい!!

ただ、ご自分でここまで訂正できるなら後の事は心配要りませんね!

********************
質問欄を拝見するとマクロは以前(最初のもの)をお使いのようですが、以下(前回のページの後のほう)のマクロを使用してください。
最初のマクロはB列のセルをクリックしないと色が付かないですが、以下のマクロはシート上のセルの値が変化した時点で色が付きます。間違いなくこちらが便利です。
リストとは入力規則のことでしょうか?それならば以下のマクロで全て解決です。

全ての箇所を訂正しておきましたので、あとは「●」~「●」の間に条件を貼り付けて使用してください。

**********************

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Color, r As Range
For Each r In Range("F5", Cells(Rows.Count, 6).End(xlUp))
With r
Color = 0
If .Value <> "" Then
'●

If .Value = "A判定" Then Color = 3
If .Value = "B判定" Then Color = 5
If .Value = "E判定" Then Color = 13

'●
End If
Range("C" & r.Row).Resize(, 5).Interior.ColorIndex = Color
End With
Next
End Sub

*********************


何かあればどうぞ。

質問した人からのコメント

2009/12/30 11:45:29

感謝 できました!!
助かりました☆ありがとうございました(^_^)

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる