人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルVBAに関する質問です.
「表があったとして,
その各列ごとに
各列の平均以上のものに,色(例えば灰色)をセルに塗る.」
というのはどのようにかくのでしょうか?
できれば,どんな列数,行数が来ても
良いようにしたいです.
(行列は左上につめて入力してあります)

●質問者: gauchon
●カテゴリ:コンピュータ
✍キーワード:VBA エクセル セル 入力 灰色
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● SALINGER
●0ポイント

条件付書式を使います。

A列全体を選択して

セルの値が 次の値より大きい =AVERAGE(A:A)

として書式で灰色にします。

次にB列以降にA列をコピーします。


2 ● SALINGER
●5ポイント

間違いです。

シート全体を選択して

上の条件付書式を設定するだけでした。

◎質問者からの返答

ありがとうございます.

でも,マクロを使いたいのです..


3 ● きゃづみぃ
●0ポイント

Sub Macro1()
'
' Macro1 Macro
'
 
a1 = 1 '開始行
a2 = 5 '終了行
a3 = 1 '開始列
a4 = 10 '終了列
 
For a = a1 To a2
 aa = 0
 ab = 0
 For b = a3 To a4
 If Cells(a, b) > 0 Then
 aa = aa + Cells(a, b)
 ab = ab + 1
 End If
 Next b
 
 If ab > 0 Then
 c = aa / ab
 For b = a3 To a4
 If Cells(a, b) > c Then
 With Cells(a, b).Interior
 .ColorIndex = 34
 .Pattern = xlSolid
 End With
 Else
 Cells(a, b).Interior.ColorIndex = xlNone
 End If
 Next b
 End If
Next a
 
End Sub

表のサイズは

a1 = 1 '開始行

a2 = 5 '終了行

a3 = 1 '開始列

a4 = 10 '終了列

を変更してください。

◎質問者からの返答

ありがとうございます.

表のサイズの部分を,

変更せずとも認識できるようにしたいのですが,

可能でしょうか?


4 ● きゃづみぃ
●90ポイント ベストアンサー

あ、先の回答は 行単位でした。

列単位に変更しました。

A列の中で 平均を出し、対象となるセルは 水色で ならなかったら

塗りつぶしなしにしています。

選択した範囲で 実行するように修正しました。



Sub Macro1()
'
' Macro1 Macro
'

a1 = Selection.Row '開始行
a2 = a1 + Selection.Rows.Count - 1 '終了行
a3 = Selection.Column '開始列
a4 = a3 + Selection.Columns.Count - 1 '終了列

 
For a = a3 To a4
 aa = 0
 ab = 0
 For b = a1 To a2
 If Cells(b, a) > 0 Then
 aa = aa + Cells(b, a)
 ab = ab + 1
 End If
 Next b
 
 c = 0
 If ab > 0 Then
 c = aa / ab
 End If
 For b = a1 To a2
 If Cells(b, a) > c Then
 With Cells(b, a).Interior
 .ColorIndex = 34
 .Pattern = xlSolid
 End With
 Else
 Cells(b, a).Interior.ColorIndex = xlNone
 End If
 Next b
Next a
 
End Sub
◎質問者からの返答

すばらしいです.ありがとうございます.


5 ● junkman2
●5ポイント

VBAを使用するよりエクセルの機能を活用してはどうでしょうか?

VBAとエクセル標準機能はお互いの良い部分を共存させるのが良いかと。

◎質問者からの返答

そうですね,ありがとうございます.

どんな列数,行数が来ても使えるようにすると汎用性が高いだと思ったので^^;

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ