[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『いろいろ』(あるよね)
教えてください。
”セルに色がついたセルのの中の数値を足す”という作業を数式orマクロで実行したいのですがどうやったらいいか教えて頂きたくお願い申し上げます。
数値計算式が入っていて可変になります。
対象の領域が不明だけど、シート上の色のついたセルをすべて対象にするなら。 (シート名は実際のものになおしてね)
Sub Sample() Dim c As Range Dim tot As Double
For Each c In Sheets("Sheet1").UsedRange If Not c.Interior.ColorIndex = xlNone Then tot = tot + Val(c.Value) End If Next
MsgBox "合計は " & tot
End Sub
(ぶらっと)
お手すきでしたら解説して頂きたいのですが。
色を指定したいときはどうしたらいいでしょうか?
For Each c In Sheets("Sheet1").UsedRange
★このシートの "UsedRange" という領域(後程補足)からセルを1つずつ c という変数に取り出す。
If Not c.Interior.ColorIndex = xlNone Then
★もし、そのセルの背景色( c.Interior.ColorIndex)が xlNone(無色) 【ではなかったら】
tot = tot + Val(c.Value)
★ tot という合計用変数にその値を足しこみ。 セルに間違えて文字列などが入っているとエラーになるので Val関数を使って、念のため数値に変換。
End If Next
★次のセルを取得すべくループ
MsgBox "合計は " & tot
★ループ処理が終わったら結果を表示。
UsedRange
シート上の、値のあるセルで、【一番上にあるセルの行】と【一番下にあるセルの行】にはさまれ 【一番左にあるセルの列】と【一番右にあるセルの列】にはさまれた矩形(四角形)の領域を "UsedRange" と呼ぶ。
で、色を指定したい場合は c.Interior.ColorIndex の値を判定すればいい。 カラーインデックス番号については、 http://www.excel-excel.com/tips/vba_63.html 等を参照。
カラーインデックスのかわりに 色番号そのもの(c.Interior.Color)を判定してもいい。 この場合、色番号をVBA既定の定数(vbYellowとかvbRedとか)で指定することも可能。
(ぶらっと)
ありがとうございました。
なんとか意味を理解いたしました!!
ですが・・・・すみません
使い方が分かりません、たびたびで誠に申し訳ございません。
教えて頂きたく。
A B C D E F G H I J K 50 40 30 10 5 5 10 15 0 15 35 (黄) (黄) (黄) (黄) (緑) (緑) (緑) (青) (青) (桃) (桃) ※毎月セルの色が変わります
上記のような表があります、(黄)は数字が入っているセルの色を意味しています。
この表から、別の場所のセルで それぞれの色が塗られているセルの数を合計を出したいです。
(黄) (緑) (青) (桃)
? ? ? ?
こんな事が出来ますでしょうか?
実際のシート上の位置が不明だけど、A1〜K1 の内容を集計して 結果を M1〜P1 に表示。 なお、色の判定については、カラーインデックスの 4,5,6,7 を使っている。 実際にそちらで塗りつぶしている色のカラーインデックスが、これとは異なれば、実際のものに なおしてね。
Sub Sample2() Dim c As Range Dim tot As Double Dim totY As Double Dim totB As Double Dim totG As Double Dim totP As Double
For Each c In Range("A1:K1") Select Case c.Interior.ColorIndex Case 4: totG = totG + Val(c.Value) '緑 Case 5: totB = totB + Val(c.Value) '青 Case 6: totY = totY + Val(c.Value) '黄 Case 7: totP = totP + Val(c.Value) '桃 End Select Next
Range("M1:P1").Value = Array(totY, totG, totB, totP)
End Sub
(ぶらっと)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.