• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL ユーザー定義関数 KANSU(A1:A10)の作成法)

EXCELユーザー定義関数KANSUの作成法

このQ&Aのポイント
  • EXCELのユーザー定義関数KANSUについて、引数の指定方法について説明します。
  • EXCELのユーザー定義関数KANSUは、任意の複数セルのデータをチェックする関数です。
  • KANSU関数を利用する際には、引数に範囲データを指定する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

Rangeオブジェクトを使って解決します。 RangeオブジェクトのCellsコレクションには、指定した領域に含まれるセルが詰まっていますので、その内容をFor Each ~ Nextを使って取得してやればいいです。 サンプル作ってみました。 指定したセルの合計を求めます。 = vbSum(A1:B200) ってな感じで使ってみてください。 Public Function vbSum(rngData As Range) As Variant   Dim RNG   As Range   Dim vntKotae As Variant   For Each RNG In rngData.Cells     vntKotae = vntKotae + Val(RNG.Value)   Next RNG   vbSum = vntKotae End Function 蛇足ですが、上記の方法は、例えば =vbSum(A:A) のように指定した場合は、馬鹿正直にA1:A65536 の範囲を調べてくれます。 このような無駄極まりない処置を減らすために、下記のような処置を行ったりします。 Public Function vbSum(rngData As Range) As Variant   Dim RNG   As Range   Dim vntKotae As Variant   Dim lngMaxRow As Long      '領域の最下行を調べる   lngMaxRow = rngData.Worksheet.UsedRange.Rows(0).Row _   + rngData.Worksheet.UsedRange.Rows.Count      For Each RNG In rngData.Cells     '領域の最下行に達した場合、抜ける     If RNG.Row > lngMaxRow Then       Exit For     End If          '合計を計算     vntKotae = vntKotae + Val(RNG.Value)   Next RNG   vbSum = vntKotae End Function 不明点とかあれば、補足にてご質問ください。GW中であれば、同日中に回答可能だと思います。

kmasumi
質問者

お礼

早速の回答ありがとうございました。何分全くの素人で、Rangeを使うのかなと、色々本やHPを物色し試行錯誤し、教えてよGooに頼ることになりました。 よく考えながら、関数に組み込んでいこうと思います。また、つまずいたら援護を お願いするかも知れませんが、この連休中には、1仕事完成するかなと一安心しています。ありがとうございました。

関連するQ&A