[[20160904233846]] 『VBA Rangeを名前定義で指定する件』(レモン) ページの最後に飛ぶ

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

 

『VBA Rangeを名前定義で指定する件』(レモン)

vbaでセルもしくはセル範囲に名前を付けて参照することができると思うのですが、
vbaの本、WebページではあまりRange("名前定義")といった記述を見かけません。
Range("A1")といった記述はよく見かけるのですが。
名前定義を使う方法ではなにか不都合があるのでしょうか。

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


 特に不都合があるというわけではないですね。
 逆に、ブックレベルの名前定義の場合、シート修飾をしなくてもOKというメリットはありますね。

 たまたま、取り扱う事例が名前定義をして処理するものではなかったということでしょう。

 ただし、コードを読んだだけでは、どのシートのどの場所かがわからない、名前の管理をクリックして調べなきゃいけないといった
 ことはありますけど。

 ところで "A1" というのは、ある意味、名前定義です。
 名前定義で A1 を設定するとエラーになりますよね。

(β) 2016/09/05(月) 04:15


こんにちは。

>Range("A1")といった記述はよく見かける
入門書には基礎的なことが載る。
応用本には、耳目を集めるすごいことが載る。

Range("名前定義")といった、
知らない人への説明がたいへんなわりに
分からないひとにはありがたみの見えにくい項目は
抜けちゃうんでしょうね。

操作対象となるセル範囲が変更になったときなど
コードを書き換えなくてもシート側でメンテできるので
わたしは好きでしたが
「本格」を標榜する本にはそぐわないですね。

( 佳 ) 2016/09/05(月) 05:42


 >名前定義を使う方法ではなにか不都合があるのでしょうか。

 別に不都合というより、面倒くさいだけ。(私の場合)
 エクセル95以前は、名前定義を使ったシートが多かったように
 思います。
 今のVBAと書き方が違うから。(実際に書いたことは無く、見ただけ。)
 BJ 9/5 12:49

名前定義は、やはり、対象のセルは何行何列?、というのが一目で判らないのが、使われない原因かと思いますね。
また、わかりにくい階層になるので、他の人が変更や削除方法に気づかなくて、使い回したシートに定義がコピーされて、気がついたら名前定義の山になってブックを開くのが遅くなったりする原因になりがちです。

利点は、行や列の挿入や削除に追従して範囲が変わってくれるので、マクロ修正しなくとも使える事。
欠点は、挿入には対応するのですが、追加しても追従せず、元の範囲のままになり、他の人が悩んでしまう事。
(???) 2016/09/05(月) 13:04


コメントありがとうございます。

コメントを見る限り、全員が使っているというわけではなさそうですね。
今日実際に使ってみたのですが、1シートだけでたくさんの名前定義ができてしまいました。
同じような名前を別シートでも使うと思うので今後は名前がかぶるのを防ぐには長い名前になりそうです。

ただ、セル座標形式で定数で定義してもたくさんの定数が増えるので
ソースの見づらさ、セル座標の把握のしづらさはあまり変わらない気もします。

難しいところですね。
(レモン) 2016/09/05(月) 20:46


コメント返信:

[ 一覧(最新更新順) ]


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