
EXCEL2003です。下記VBAを標準モデュールに貼り付けた上でFCS関数を使用してみましたがうまく動作しません。数字の色が赤の時は合計ができますが、その他の色の時は合計があいません。また色を変更しても計算ができません。どのようにすると計算するのか教えて下さい。Σの計算のように計算したいセルに式をいれておけば、いつでも計算するようには使用できない関数でしょうか。よろしくお願いします。
Function FCS(adrs,clr)
sm=0
For Each and ln adrs
Fci=ad.Font.Colorindex
Cv=ad.Value
If fci=clr Then
Sm=sm+cv
End lf
Next
FCS=sm
End Function
No.2ベストアンサー
- 回答日時:
質問で掲示したコードは、手で書き写したものでしょうから、だいぶ、雑になっているようです。
少し手を加え工夫をしました。Adrs は、セル範囲ですが、clr は、数字もしくはセルで、フォントに色を付けた同じものを探します。また、Optional にしていますから、引数のclr を抜きにしますと、ワークシート関数のSUM と同じになります。=FCS(A1:A20,C1) C1 に文字や数字を入れて、Fontに色を付ける
なお、色を変更するだけでは、関数は基本的には再計算されません。それを実現するには、複雑なマクロが必要になります。また、F9(または、Shift + F9)を押しても、そのままでは、計算しませんので、再計算をさせるには、以下のように、Application.Volatile を入れますが、実務では、そうせずに、引数の値を変えたり、数式にEnter を入れるだけで、再計算させます。あまり大した効果が得られないからです。
'//
Function FCS(Adrs As Range, Optional clr As Variant)
Dim dSm As Double, cv As Double
Dim fci As Integer, ad As Variant
'Application.Volatile 'これを外せば再計算します。
If TypeName(clr) = "Range" Then
clr = clr.Font.ColorIndex
End If
dSm = 0
If IsMissing(clr) = False Then
For Each ad In Adrs
fci = ad.Font.ColorIndex
cv = Val(ad.Value)
If fci = clr Then
dSm = dSm + cv
End If
Next
Else
dSm = Application.Sum(Adrs)
End If
FCS = dSm
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) エクセルで書式設定とフィルタの組み合わせでうまく行かないのですが 4 2022/10/07 10:02
- Excel(エクセル) excel2013 色付きセルの値合計 3 2023/02/28 11:48
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) エクセルでの左のセルのコピー 3 2022/07/25 12:31
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「割る」と「割りかえす」の違い
-
分数の計算で分子が0になったら...
-
楕円の円周の長さの計算の仕方...
-
面積から辺の長さを出す計算式
-
映画を1.3倍速で見た時の時間計...
-
一個当たり15秒の製品を1時間で...
-
30パーセントオフで371円だった...
-
中学生の数学を習う順番に並べ...
-
2割負担の計算。
-
プール計算って何ですか?
-
袋のサイズから容量を計算する方法
-
公共工事の現場管理費率(%)...
-
積分のエクセル計算式を教えて...
-
1/6n(n+1)(2n+1)+1/2n(n+1) の...
-
数学の問題? 板を効率よく切...
-
半径の計算方法を教えてください。
-
関数電卓の使い方で質問
-
ある本を全体の3/8まで読んだら...
-
写真の積分計算を、1/6公式を使...
-
eのマイナス無限大乗
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eのマイナス無限大乗
-
「割る」と「割りかえす」の違い
-
分数の計算で分子が0になったら...
-
30パーセントオフで371円だった...
-
映画を1.3倍速で見た時の時間計...
-
面積から辺の長さを出す計算式
-
一個当たり15秒の製品を1時間で...
-
中学生の数学を習う順番に並べ...
-
楕円の円周の長さの計算の仕方...
-
10進法で時間の計算で30分が0.5...
-
プール計算って何ですか?
-
2割負担の計算。
-
積分のエクセル計算式を教えて...
-
普及率の計算方法について
-
袋のサイズから容量を計算する方法
-
量子力学の運動量pの微分演算子...
-
冪乗の計算について教えてください
-
エクセルで日数を年数に置き換...
-
0.8=1あるいは0.8進法
-
公共工事の現場管理費率(%)...
おすすめ情報