Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


75438 / 76738 ←次へ | 前へ→

【5736】Re:範囲に付けた名前を関数で使用したい!
回答  こうちゃん E-MAIL  - 03/5/29(木) 9:50 -

引用なし
パスワード
   やまごんさん、こんにちは

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(名前範囲)のように、範囲全体を利用するケースが多いように思いますが・・

余計なお世話でしたらごめんなさい。
3 hits

【5724】範囲に付けた名前を関数で使用したい! やまごん 03/5/28(水) 23:09 質問
【5732】Re:範囲に付けた名前を関数で使用したい! ichinose 03/5/29(木) 9:03 発言
【5736】Re:範囲に付けた名前を関数で使用したい! こうちゃん 03/5/29(木) 9:50 回答
【5775】Re:範囲に付けた名前を関数で使用したい! やまごん 03/5/30(金) 1:49 お礼
【5776】Re:範囲に付けた名前を関数で使用したい! こうちゃん 03/5/30(金) 8:20 発言
【5793】Re:範囲に付けた名前を関数で使用したい! やまごん 03/5/30(金) 23:01 質問
【5807】Re:範囲に付けた名前を関数で使用したい! こうちゃん 03/6/2(月) 9:14 回答
【5826】Re:範囲に付けた名前を関数で使用したい! やまごん 03/6/3(火) 0:44 お礼

75438 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free