【会員アンケートご協力のお願い】抽選で計5名様に役立つ書籍をプレゼント!

Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
カウンタ変数を宣言する場所について
投稿日時: 24/11/21 07:49:47
投稿者: suekunx

お世話になっております。
 
for i=1 to 10


next
 
のような「i」カウンタ変数を宣言する場所なのですが
私の場合は、プロシージャレベル変数として宣言するのですが
あるソースを見たときに、モジュールレベル変数として宣言しているものがありました。
これは、どちらの宣言が望ましいのでしょうか?
基本的にカウンタ変数は、プロシージャ内のみで使用し、プロシージャをまたいだ使用はしないものと
した場合です。
よろしくお願い申し上げます。

回答
投稿日時: 24/11/21 08:15:51
投稿者: mattuwan44

メンテナンスで困らなければ、個人の思うようにしたらいいんじゃないですかねぇ。。。。
チームで開発するなら、ルールが必要でしょうが。。。。
変な癖を付けたら、変なとこでデバッグに苦労するかも知れないという感じかと。
 
 
https://excel-ubara.com/excelvba1/EXCELVBA408.html
http://officetanaka.net/excel/vba/variable/05.htm

投稿日時: 24/11/21 08:21:55
投稿者: suekunx

mattuwan44さん
ありがとうございます。
 
私が危惧しているのは、モジュールレベル変数で宣言した場合
意図せずに、iの値が他のプロシージャで変更されてしまうということです。
なので、私は、プロシージャレベル変数で宣言しております。
いかがでしょうか?

回答
投稿日時: 24/11/21 09:29:25
投稿者: mattuwan44

貼り付けたリンク先の記事を読んでいただければ、
分かると思いますが、変数の適用範囲は出来るだけ狭くなるように、
宣言することが、望ましいです。
なので、
 

引用:
モジュールレベル変数で宣言した場合
意図せずに、iの値が他のプロシージャで変更されてしまうということです。
なので、私は、プロシージャレベル変数で宣言しております。

 
という考えで良いと思います。
 
ネット上のサンプルはあくまでサンプルです。
個人で使う分には、「動けばよい」ですが、
他人(未来の自分も含む)がメンテナンスしたり、
することを考えたら、読みやすいコードを書きたいですよね。
 
最終の判断は、あなたがよりよいと思う方にしたらいいと思います。

投稿日時: 24/11/21 09:31:45
投稿者: suekunx

mattuwan44さん
 
ご丁寧にありがとうございます。
よくわかりました。
大変助かりました。
今後ともよろしくお願いいたします。