[[20170322122229]] 『ユーザー定義関数』(らくしゅん) ページの最後に飛ぶ

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

 

『ユーザー定義関数』(らくしゅん)

エクセル2013で色がついたセルを数えるユーザー定義関数と色のついたセルの
数字を合計するユーザー定義関数を使用していました。
今回パソコンを新調してエクセル2016になりましたところ、その関数は一旦は正常な値を返すのですが、その数式をコピー貼り付けすると、コピー元のセル
が#N/Aになってしまいます。
エラーのセルをダブルクリックすると元に戻ります。
検索範囲に空白はありません。
何かこれに対する対策はありますでしょうか?

ユーザー定義関数はこのような記述です。

数を数えるもの
Function ColorCount(R1 As Range, C As Range)

    Dim r As Range

    Application.Volatile
    ColorCount = 0

    For Each r In R1
        If r.Interior.Color = C.Interior.Color Then
            ColorCount = ColorCount + 1
        End If
    Next r

合計するもの
Function ColorSum(R1 As Range, C As Range)

    Dim r As Range

    Application.Volatile
    ColorSum = 0
    For Each r In R1
        If r.Interior.Color = C.Interior.Color Then
            ColorSum = ColorSum + r.Value
        End If
    Next r

End Function

< 使用 Excel:Excel2016、使用 OS:Windows10 >


[[20041004162759]]
この辺は確認されましたか?
(名無し) 2017/03/22(水) 13:29

ありがとうございます。
計算方法自動になっています。
また、データも数字になっています。

あと何かありましたら、アドバイスお願いします。
(らくしゅん) 2017/03/23(木) 09:51


コピー元が変わるというのがよくわかりませんが・・・
貼り付け先は右クリックから貼り付けにカーソルを合わせた状態で#N/A、しかし貼り付けるとすぐ再計算され正しい値になります。

貼り付け元と貼り付け先、対象範囲のレイアウトやコピペの方法をもう少し詳しく教えてもらえますか。
(名無し) 2017/03/23(木) 11:05


ありがとうございいます。

レイアウトとしては、簡単に言えば A列に名前、B列に数字があり、例えば1と3との行に
色がつけてあります。あとA5にも同じ色が付けてあります。

B5に =colorsum(b$1:b$4,$a$5)という計算式がいれてあります。入れた時は正常な値(400)を返します。
次に、b5で右クリックでコピー選択 c5で右クリックで数式を貼り付けます。
すると、b5が#N/Aになります。

このような説明でよろしいでしょうか?

  A       B     C 
1 田中     100    500
2 佐藤     200    600
3 伊藤     300    700
4 安藤     400    800
5 色付セル計 #N/A  1200

最悪、最後の最後にエラーのセルをすべてダブルクリックすれば、なんとかなるのですが。。。
納得いかないなぁと思います。よろしくお願いします。
(らくしゅん) 2017/03/26(日) 22:47


 不思議ですねぇ。

 xl2016は持っていないのですが、xl2010、xl2013 でやると、全くそのようなことにはなりません。

 そもそも、この処理に右クリック操作は(私は)やりませんねぇ。
 B5 を C5 にフィルコピーします。あるいは、B5 で Ctrl/c-->C5 でCtrl/v。

 で、右クリック操作を(生まれて初めて)やってみました。

 C5 を選択して右クリックして、貼付け(P)あるいは数式(F)にマウスを当てた瞬間に、『C5』が #N/A表示されますが
 クリックして実行すると、正しく、式が入って結果が出ています。

( β) 2017/03/27(月) 10:41


残念ですがこちらでも再現しません。発生したらF9でも押して下さい。

別のマクロやユーザー関数が邪魔しているんじゃないでしょうか?
Application.Calculation = xlCalculationManualを記述していたりとかで計算が手動になっていたりとか。

β氏へ
そういう書き方は右クリックで操作している方を馬鹿にしているように見えますので控えられては?本筋にも関係ありませんし。
(名無し) 2017/03/27(月) 10:45


 名無しさん

 表現がまずかったですね。反省。

 ただ、いいわるいは別にして、ある数式を連続したセルにコピーするときには、私はフィルコピーを使いますね。

(β) 2017/03/27(月) 11:04


お二人の方、ありがとうございます。

右クリックに関しては、実は連続したセルにコピーではないんです。説明を簡単にしようと思い
連続セルにしてしまいました。すみません。
試しにフィルコピーしてみました所、上手くいきました!
さらに、コピー貼り付けを上のメニューで選んでやってみましたら、
飛んだセルでも何事もなく上手くいきました。

コピーか貼り付けに問題があるのかもしれないと思い色々やってみました所
コピーは右クリックで選び、貼り付けは上のメニューで実行すると正常に動きました。
貼り付けに何かあるのかもしれないです。

別のマクロやユーザー関数については、マクロはそれだけしか使ってないので、違うのかなと
思ってます。

色々研究してみようと思います。本当にありがとうございました。

(らくしゅん) 2017/03/27(月) 12:57


コメント返信:

[ 一覧(最新更新順) ]


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