5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
マメコトさんの投稿
(投稿ID: 3822)
「複数のサブプロシージャーで変数を共有したい場合は、サブプロシージャーの前に変数宣言すれば良い。ただしあまりお勧めしない。」とネットで見た(記憶がある)のですが、お勧めしない理由は何でしょうか。
小川 慶一さんのコメント
(コメントID: 5343)
> 「変数を消して小人ちゃんが帰っていく」=「変数は1つのサブプロシージャーの中でのみ有効」という理解で良いですか?
基礎編で作るようなサブプロシージャの中で宣言される変数についてはその通りです。
> 「複数のサブプロシージャーで変数を共有したい場合は、サブプロシージャーの前に変数宣言すれば良い。」
そのような変数をモジュールレベル変数と言います。
ウチの講座ですと、発展編1で取り扱います。
> 「ただしあまりお勧めしない。」とネットで見た(記憶がある)のですが、お勧めしない理由は何でしょうか。
そのネットの記事には、おすすめしない理由までは書いてありませんでしたか。
いろいろな理由があります。
どの理由から第1に説明するべきか?どの理由は説明し、どの理由は説明しないか?あるいは、説明するとしたらどこまで説明するか?ということは、質問された方の現在のスキルレベルに応じて変わります。
ですので、ここは基礎編というまで事もありますので極めて概念的なことだけ軽くお伝えしておきます。
複数のプロシージャ間で情報を共有する方法としてはモジュールレベル変数を使うよりも、引数つきプロシージャを使う方が使い勝手が良いからです。(引数つきプロシージャは、発展編2で登場します)
基礎編では、複数のプロシージャが情報を共有しなければならないと言うほどの大掛かりなプログラムを書くことを想定していません。
むしろ、そんな大掛かりな仕掛けを使わないでも基本的な道具だけでかなりの仕事はできるようになりますので、まずはそうなって欲しいと思っています。
このご質問については、もしまだ気になることがあるようでしたら、まずは基礎編のフォローアップ演習までを一通りやり終えて、それから改めてご質問いただければと思います。
ある程度マクロ書いた経験がついてからであれば、同じ答えをもらったとしてもまた違って感じられることと思います。
今回は、まずはこのぐらいで。