- ベストアンサー
Rand関数を使って
A1のセルに=int(rand()*100+1)という関数を使って1から100までのランダムな数字を入れるようにしました。A2からA101までに連続した 1~100までの数字が入力してあります。 B列には、氏名が入力してあります。 で、A1に出たランダムな数値の行に色をつけたいのですが、マクロの書き方がわかりません。 どなたか教えていただけないでしょうか。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.2です! 補足に >さっそっくマクロを走らせてみましたが、残念ながら >同じ数字が赤に変わるようです。 とあるのですが、A1セルと同じ数値の行に色がつくようにしたつもりです。 ただ・・・ 1行コードが間違っていました。 >j = Cells(1, Columns.Count).End(xlToLeft).Column の行を >j = Cells(2, Columns.Count).End(xlToLeft).Column に訂正してください。 そうしないとA列だけしか色がつかないと思います。 ※ 再計算されたときにマクロが走るようにしていますので、F9キーを押して試してみてください。 ※ 前回も書いたのですが、条件付書式で色が付いているセルはありませんよね? 条件付書式で色が付いている場合は変化しません。 他の原因ならごめんなさいね。m(_ _)m
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 For~Nextにしていますので、 あまりスマートでないかもしれませんが・・・ Private Sub Worksheet_Calculate() Dim i, j As Long j = Cells(1, Columns.Count).End(xlToLeft).Column Application.ScreenUpdating = False Cells.Interior.ColorIndex = xlNone For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(i, 1) = Cells(1, 1) Then Range(Cells(i, 1), Cells(i, j)).Interior.ColorIndex = 3 '←赤にしています End If Next i Application.ScreenUpdating = True End Sub こんな感じではどうでしょうか? ※ 条件付書式で色が付いているセルは色が変更されません。 参考になりますかね?m(_ _)m
補足
お答えありがとうございました。 さっそっくマクロを走らせてみましたが、残念ながら 同じ数字が赤に変わるようです。 マクロ初心者なので、マクロの中身の意味がわからず、どこをどう書き換えればいいのかわからず こまっています。
- neKo_deux
- ベストアンサー率44% (5541/12319)
マクロで色をつける必要があるんでしょうか? セルの条件付書式の方が簡単だと思いますが。 A2セルなら条件付書式で、 「数式が」「=(A$1=A2)」 とか。 Excel(エクセル)基本講座:条件付き書式の使い方 http://www.eurus.dti.ne.jp/yoneyama/Excel/jyo-syo.html
補足
ありがとございます。 A1からA100までというのは、たとえの話で実際はもっとたくさんのデータが入っています。 条件付き書式だとセルの選択が面倒なので、マクロでやりたいのです。 よろしくお願いします。
お礼
ありがとうございました。ナンバーだけではなく B列の氏名のセルにも色がつくようになりました。 本当に助かりました。ありがとうございます。