• ベストアンサー

VB初心者の私に教えてください!

最近VBを始めたんですけど、関数 定数 変数 引数 の意味がよく理解できません・・・。値を返すとか戻り値とか、あとプロシージャを作るってどういうことですか?なにかにたとえて教えてくれればうれしいです! お願いします(^。^)

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 これらの言葉はVB特有のものではないので、一般的な、昔私がしてもらったような説明をします。 定数と変数は値を入れる入れ物です。 定数は一度入れたら中身の変更は出来ません。No.1の方も例に出していましたが、「π」という箱に「3.141592」という数字を入れておいて、使いたい時にその箱を持って来ます。いちいちその都度「3.141592」という数字を記述しなくても、「π」という箱の名前を使えばよくなります。 変数は何度でも中身を変更出来ます。例えば、ある時点では「5」が入っていたけど、その後「7」を入れておきたければ、中身を変更します。そうすれば、その後は「7」として使えます。 次に、関数とプロシージャはこれもNo.1の方が言っているように同じようなものです。ただし、プロシージャにはSubプロシージャと、Functionプロシージャがあり、一般的な関数はFunctionプロシージャと同じようなものといえます。 どちらのプロシージャも、ある動作・仕事をする装置といえます。 例えば、スイッチを押すと家の電気がつくという場合、この電気をつける装置(仕組み)がプロシージャというわけです。スイッチを押すというのは、プロシージャを呼び出すことにあたります。 また、スイッチを押すだけじゃなく、ドアをあけたときとか、部屋に入ったときとかにも電気がつくかも知れません。そのような、人(ユーザー)がどんな動作をした時にその装置が動く(プロシージャが呼び出される)かは、作る人の自由です。 また、SubとFunctionプロシージャの違いは、具体的な結果をユーザーに返すかどうかの違いです。 例えば、ミキサーに材料と入れてスイッチを押すとミックスジュース(?)を返してくれます。このように具体的な結果(値)を返してくれるのがFunctionプロシージャで、何か動作をするだけなのがSubプロシージャです。この結果を戻り値と言います。 さらに、このミキサーには当然材料を入れないと結果は返ってこないですが、この材料が、ちょうど引数にあたります。 引数には入れていいものとまずいものがあります。ミキサーに例えば貴金属を入れたら壊れてしまいますよね。 また入れる材料(引数)が変われば、ミキサー(プロシージャ)が返してくれるジュース(戻り値)も変わってきます。 VBというのは、ユーザーが何か動作をした(ボタンをクリックした、リストから選択した、テキストボックスに何か入力したなど)時に、その動作(イベントと言います)に対応したプロシージャを呼び出します。さらにそのプロシージャの動作のなかで、別のプロシージャを呼び出したりします。 そういうプロシージャの集まりがVBというわけです。 ちょっと長くて分かりにくかったかも知れませんが、参考になれば幸いです。 では。

aika25
質問者

お礼

たくさん書いてくれてありがとうございます! よ~く読んで理解してみます。(やっぱむずかしいです・・・) ありがとうございました!

その他の回答 (1)

  • michacha
  • ベストアンサー率37% (9/24)
回答No.1

こんにちは. これら全て,わからなかったら何もVBできないですよ. 現在本を読んでいるんでしょうか..? 関数とプロシージャ-が同じようなものと考えてください. 定数とは,ある値が決定しているものとでも言えばいいでしょうか.. Const で定義されているものがそうです. 例えば,Const PI = 3.141592 とすれば,絶対にPIは3.141592として使用できます. 数学の式で S=2πrというのがありましたが,πの値は決まっていますよね? それが定数です. 逆にさっきの式のrの部分が変数になります. rの値は円の半径が変わることから,変わりますよね. 例えば Dimなどで宣言されます. 例: Dim aa as integer dim bb as integer aa = 2 bb = aa aa = 3 とすれば,始めaaには2が入っています. そして,bbにaaの値が代入され, aaには3が代入されることになります. aaやbbの値がその時その時によって変わるのがわかりますでしょうか? 次に引数ですが, 関数やプロシージャに渡すデータの事をいいます. 例えば,akikaというプロシージャがあるとします. Private sub akika(aa as integer, bb as integer) Dim cc As Integer cc = aa aa = bb bb = 3 end sub というプロシージャがあるとします. (これってプロシージャを作ってることになります) aa,bbが引数に当たります. それで,他のプロシージャからこのaikaプロシージャを呼び出すときに, akikaプロシージャに渡す引数を指定します. 例えば, call akika(5,4) とかです. この場合,aaには5,bbには4が渡されます. 渡すものは値であっても,変数名であってもいいですよ. わからなければ また答えます.

aika25
質問者

お礼

たくさんありがとうございます! 土日よく勉強してみます。 また質問するかもしれないですが、そのときはよろしくお願いしますね。 ありがとうございました!

関連するQ&A