|
やまごんさん、こんにちは
ichinoseさん、こんにちは。VBAとしてはichinoseさんの解が正解だと思いますが、やまごんさんの「名前」や「範囲」の理解のためにあえて、横レスさせていただきます。
>A3からA10までの範囲に「DATA」と命名します。
>B3からB10のセルに「=DATA+1」と記述すれば、Aの列の値に1を足した値を表示します。
ワークシート上の計算式で「=DATA+1」のように入力すると、暗黙でその名前範囲の行が補完されると考えてください。
ですからこの例の場合で、B11セルに同様の計算式を指定すると#VALUE!エラーになります。
VBAで範囲名をつかうには、「暗黙の行」を明示的に指定すれば利用できます。
たとえば・・・
Function cal(x As String)
cal = Range(x).Range("A" & ActiveCell.Row) + 1
End Function
のマクロをつくり、C3からC10のセルに、=cal("DATA")としてみてください。
C3セルにはA3セルの値に1を加算した値が表示されると思います。
この場合は名前範囲を外れた場合(C11セルとか)、Null+1で値は1となり、エラーにはなりません。
#通常VBAで名前範囲を使うのは WorkSheetFunction.Sum(名前範囲)のように、範囲全体を利用するケースが多いように思いますが・・
余計なお世話でしたらごめんなさい。
|
|