[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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
(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さんのご指摘が飲み込めないです。 申し訳ない。
ここを参考に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
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.