myUDFでは、「A1:A12」のようなセルの範囲を参照できますが、「A1、B4、H3」などの連続していないセルを参照するにはどうすればよいです
か連続していないセルではなく、文字列とセルの範囲を取る
[ExcelArgument(AllowReference = true, Name = "Relations", Description = "a set of relations")]object rels
コードから数式をパラメーターと共にワークシートに入力しているように聞こえますが、ユーザーが Excel の数式バーで数式を通常どおり編集できるようにする必要があります。あれは正しいですか?
その場合は、パラメーターを括弧で囲みます。たとえば、このようなUDFの場合...
Public Function MyUDF(my_param As Range)
'concatenate all cell values in a non-contiguous range:
Dim rgCell As Range, rgArea As Range
For Each rgArea In my_param.Areas
For Each rgCell In rgArea
MyUDF = MyUDF & CStr(rgCell.Value)
Next rgCell
Next rgArea
End Function
...次のようにワークシート セルに入力します。
=MyUDF((A1,A3,A7:A11,C8:E10))
SUM などの組み込み関数を使用する場合と比較して、余分な括弧のセットに注意してください。
ところで、ご存知かもしれませんが、連続していない範囲をループするときは、範囲の領域をループしてから、各領域のセルをループする必要があります。範囲内のセルをループすると、最初の領域のセルのみが得られます。