[[20131226153253]] 『UFClrSumccx関数について』(とも) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『UFClrSumccx関数について』(とも)

色つきセルの合計を求めようと思い、
=UFClrSumccx(K4:K398)
という関数にて合計を求めました。

一度検算してみたところ、答えが違い、K列の途中までは間違いないのですが、
K4〜K164まで合っていて、それ以降が合計が違うのです。
何か障害になるような条件は決まっているのでしょうか?
たとえば、求められる数量が決まっているとか、間にスペースセル(空欄)があると
計算できないとか・・・。

お分かりになる方教えてください。

とも

< 使用 Excel:Excel2003、使用 OS:WindowsXP >


 この学校からダウンロードされたのかな?
[[20090206154234]]
 ↑も一応参考にしてください。
 ↓学校のコード
Public Function UFClrSumccx(adrs)
' 色のついたセルの合計
Dim sm As Variant, cv As Variant, fci As Integer, ad As Range
  sm = 0
   For Each ad In adrs
    fci = ad.Interior.ColorIndex
    cv = ad.Value
    If fci <> -4142 Then
     sm = sm + cv
    End If
   Next
 UFClrSumccx = sm
 End Function

 塗りつぶしなしではなく、白に塗りつぶしているとかは?
 あとはデータ見てみないと再現できないかなー

(稲葉) 2013/12/26(木) 17:18


コメントありがとうございます。
せっかくなんですが、私、マクロがぜんぜんわからないんです!!
書き込んでくださったコードはどのように使用したらいいんでしょうか。

今現在私が使っているのは

=UFClrSumccx(K4:K398)

を関数として直接使っています。
そもそもそれが間違いなのでしょうか?
(とも) 2013/12/26(木) 17:39


えっと、色付きセルの数値の合計を求めるのなら、
=UfClrSumccx(K4:K398) であっています。
可能性があるとすれば、
○[とも]さん自身が言われている、セルに数値以外のものが入力されている
○可能性としては、後からセルに色を付けて [再計算] していない
くらいでしょうか?

(kazu) 2013/12/26(木) 18:24


 Application.Volatile
 が無いので再計算してもUpdateしないのでは?
(seiya) 2013/12/26(木) 18:57

 ごめんなさい、中途半端に引用してきました。
 kazuさんのおっしゃっている[再計算]はおそらく

 Public Sub USClrReCalc()
 Application.CalculateFull
 End Sub

 こちらではないと思います。
 ただ再計算(F9)だけだと確かに計算されないので、都度押してもらう必要はあるかもしれません。

 エクセルさんにはもうちょっと色関係の関数頑張ってもらいたいですね。(イベントでもいいですが)

 ともさん
 もしそれが大切な資料で絶対に間違ってはいけないなら、マクロの知識無しに使うのはリスクがある
 かと思います。

(稲葉) 2013/12/27(金) 08:47


 >Application.CalculateFull
              ^^^^^^^^^^^^^
 Application.Volatile
             ^^^^^^^^
 なんだけど?
(seiya) 2013/12/27(金) 12:00

 頭が悪くてseiyaさんのご指摘が飲み込めないです。
 申し訳ない。

[[20031108154123]]

 ここを参考にCalculateメソッドでなく、CalculateFullメソッドを実行しないとだめですよって
 言いたかったのですが、Application.Volatileを入れるとセルの色が変更になった場合も再計算
 の対象になるのでしょうか?

 ※Application.Volatileで、F9再計算で再計算されることは確認できました。
(稲葉) 2013/12/27(金) 12:50

 そういうことだったら、あまりお勧めではありませんが

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.Calculate
 End Sub

 とでもしておくとか?
(seiya) 2013/12/27(金) 13:10

 > たとえば、求められる数量が決まっているとか、間にスペースセル(空欄)があると 計算できないとか...
数量が決まっている事はなく、途中のセルが空欄でも何も問題はありません。

私が言う再計算の意味は
○シートタイプで使われているなら、シートにある [再計算]ボタンを押す
○アドインタイプで使われているなら、メニューの右端にある [ヘルプ(H)] の右側にある [Clr]メニュー → [再計算] をクリック
で CalculateFull が呼び出され、再計算するはずです。

確かに通常の [F9]再計算 では再計算しません、この件は早急に修正したいと思います。

(kazu) 2013/12/28(土) 15:07


カラー関数 改訂版の UFClr1228 をアップしました、
https://www.excel.studio-kazu.jp/DL/UFClr/UFClr.html
これで[F9]で再計算できると思います。
[とも]さんの提案、[稲葉]さんと[seiya]さんのアドバイスに感謝です。
(kazu) 2013/12/29(日) 00:45

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.