- ベストアンサー
VBAでの変数や定数の使い方について
- VBAの学習中の初心者が、変数や定数の使い方について知りたいです。参考書では、数値や文字列を定数に置き換えたり、セルのアドレスを基点セルを基準に指定するように変更する方法が紹介されています。しかし、この方法では可読性が低く、後から修正する際に確認する場所が飛ぶため、不便です。今からこの方法に慣れておくべきでしょうか?
- VBAの初心者が変数や定数の使い方について教えて欲しいです。参考書には、数値や文字列を定数に置き換える方法やセルのアドレスを基点セルを基準にする方法が書かれています。ただし、この方法は後から修正する際に確認する場所が飛ぶため、可読性が低いです。この方法に慣れておくべきでしょうか?
- VBAの初心者です。変数や定数の使い方について質問です。参考書には、数値や文字列を定数に置き換える方法やセルのアドレスを基点セルを基準にする方法が書かれていますが、これらの方法では後から修正する際に確認する場所が飛ぶため、可読性が低いと感じています。この方法に慣れておくべきでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ごく真っ当な事が書いてあるように思いますが。 ポイント: >後からのコードの修正時を考えて マクロのあちこちに range("A1") がバラバラと記入されていたときに,「どこを」修正する必要があるのか,必要な箇所を「漏れなく」ホントに修正できたのか,直したいA1と「直さなくてイイ」A1を,しっかり判別したのかできたのか,といった事です。 あなたの希望する場当たり的なやり方じゃ,マクロの隅々までしっかり目を通してガンバって直しますとしか言えません。それじゃ非効率ですし,品質も上がりません。 コツ?慣れ?かもしれませんが >後から見返した時に、確認する場所が飛ぶため A1を,と考えるから「あちこち見る」という発想になるのかな?と思います。 「基点セル」と考えれば,基点セル基準の作業はすべてA1じゃなく「基点セル」と書いてあるのを確認するだけですが。
その他の回答 (1)
- RandenSai
- ベストアンサー率54% (305/561)
まあ確かに、起点セルがA1だったらRange("A1")の方が解りやすいでしょう。また、一回しか出てこない指定に定数を使うかどうかは考えどころです。こういう場合は定数にこだわると逆に読みづらくなるので、固定の番地指定で構わないと思います。ただ、一回しか出てこない指定でも、マクロの奥深くにあって存在に気付きにくく、かつその番地がシートの変更で影響を受ける場合は、定数にしてマクロ先頭付近に置いておくと、すぐに見つけられるので手直しが楽になったりもします。時と場合によりけり。 ある程度実用的なマクロを書けるようになると、A1起点に処理することの方が珍しくなり、N13みたいな半端な位置から処理を始める場合にしょっちゅう出くわすようになるでしょう。そうなったら定数の方が読みやすくなる可能性が出てきます。ただ、定数化しただけでは不十分で、コメントを書いておくべき。これは当たり前だけど、定数名も自分で判るように命名しないと、ちっとも読みやすくなりません。今は定数を使うという概念も命名規則も他人からの押しつけみたいなものだから、余計に判りにくいと感じているのではないでしょうか? さらに慣れてきていろいろマクロを作っていくと、基点自体が固定ではない状況も頻出します。特定の範囲の値が入ったセルを探して、そこを基点に処理する…みたいな感じ。こうなったらもはや"A1"みたいな固定の番地指定は全く通用せず、変数で持つしかなくなります。それに慣れる意味でも、番地を直接書き入れる指定方法よりは定数で置き換えるのに慣れておいて損はないでしょうね。
お礼
ご指摘ありがとうございます。
お礼
ありがとうございます。