映画のエンドロール観る派?観ない派?

忙しいところすいません。
色付きセルの値を合計するマクロ関数をチャットGPTで見つけてためしたのですが、上手くいきません。
Function SumColoredCells(pRange As Range) As Double
Dim cel As Range
Dim total As Double
For Each cel In pRange If cel.Interior.ColorIndex <> xlNone Then
total = total + cel.Value
End If
Next cel
SumColoredCells = total
End Function

= SumColoredCells(a1:c10)

答えは #NAME?となります。

忙しいところすいませんが、教えてもらえませんか?。
EXCEL2013ではむりなんでしょうか?。

質問者からの補足コメント

  • うーん・・・

    ありがとうございます。excel2013では教えて貰ったものを貼り付けて実行してみましたが、同じ結果になりました。#NAME? 前のままです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/02/28 12:18

A 回答 (3件)

当方365のExcelですが、問題なく動くことを確認しました。


Excel2013はサポートも切れていますので更新されることをお勧めします。
ちなみに、chatGPTで作成されたのであれば、あなたの質問文をそのままchatGPTに聞いてみてはいかがでしょう?私が試したところ、明確な答えが返ってきましたよ。

⇩以下、ChatGPTの答え
おっしゃる通り、この関数をExcel 2013で実行すると、#NAME?というエラーが発生する可能性があります。これは、関数内で使用されているxlNoneが定義されていないためです。xlNoneは、Excel VBAの定数であり、他のバージョンのExcelでは自動的に定義されますが、Excel 2013では定義されていません。

このエラーを解決するには、代わりに0を使用して条件分岐を実行することができます。すなわち、以下のように関数を修正することができます。

Function SumColoredCells(pRange As Range) As Double
Dim cel As Range
Dim total As Double
For Each cel In pRange
If cel.Interior.ColorIndex <> 0 Then
total = total + cel.Value
End If
Next cel
SumColoredCells = total
End Function

この修正を行うと、関数が正常に動作し、指定されたセル範囲内の色のついたセルの値の合計が返されます。
「excel2013 色付きセルの値合計」の回答画像1
この回答への補足あり
    • good
    • 0
この回答へのお礼

忙しいところ誠にすいませんでした。うまくできました。本当にありがとうございました。

お礼日時:2023/02/28 12:47

問題なく動作しますよ。


ブック内に保存するなら、ブックの標準モジュールを用意して
そこの記述します。
使用したいシートに戻り、数式バーに=sumと記載すると、一覧に
SumColoredCellsが表示されるので、これを選択。
 =SumColoredCells(A1:C10)
として記載すれば、色付きセルの合計が出ます。
「excel2013 色付きセルの値合計」の回答画像3
    • good
    • 0

もしかして、マクロ有効ブックになっていないのではないでしょうか?


マクロを実行するにはExcelファイルをマクロ有効にする必要があります。

もしそうであれば、いったんExcelブックを「名前を付けて保存」してください。
ファイル名を入力するダイアログが出ると思いますが、このときにマクロ有効ブック(拡張子がxlsm)に変更することができます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!