• ベストアンサー

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

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

  • aika25
  • お礼率49% (168/340)

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

  • ベストアンサー
  • 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

  • VBAでの戻り値と引数について

    最近VBAでプログラムを勉強しています。 引数と戻り値について教えてください。 定義としては、 引数:プロシージャに渡される定数、変数、および式。 戻り値:呼び出し元に処理の結果を戻す値。 となっているのですがいまいちピンときません。 SubプロシージャとFunctionプロシージャでその違いがあると思うのですが、具体的にどれが引数でどれが戻り値なのかわかりません。 他のプログラミングも全く経験がない初心者で初歩的な質問ですみませんがご教授お願いします。

  • コールバック関数

    VB6.0でコールバック関数みたいなのを呼び出して 別のプロシージャを作成する事ってできないでしょうか? 並列処理をさせたいのですが、あるdllを呼び出しくる際 戻り値が返ってくるのを待ってしまいその部分でラグが発生してしまいます。 そのdllに関してのみ別のプロシージャに投げて戻り値が返ってくるのを待たず、 戻り値をパブリック変数に順次格納していきたいのですがVB6.0 or .netで可能でしょうか? VB6.0SP3 Windows2k

  • 戻り値 引数 と API プログラミング初心者

    先日 戻り値 引数の関係を学びました。 呼び出しもとが関数を呼び出すときに上げる情報を引数、関数の処理から受け取る情報を戻り値であると学びました。 これを学んだ際に、APIも情報を受けわたす窓口であるという点と異なるもの同士(プロシージャとソフトウェア)で連携するという点で似ているなと感じました。 この考え方や認識に誤りはないでしょうか?よろしくお願いします

  • VB 関数

    初めまして。 VB初心者なので,簡単な質問なのかしれませんが御願いします。 C言語で,   int      main        (void) 戻り値の型    関数名      戻り値なし と書きますが,これと同じ意味を持つプログラムをVBで書くとどのようになりますか? 関数の作り方がまだわかってないので教えていただけますか? 宜しく御願いします。 

  • 戻り値と引数

    戻り値と引数の概念がよくわかりません。 質問内容は2つ (1)「戻り値は値を関数元に返す」 とありますが 返すとどうなるのですか? また返さないとどうなるのかを教えて下さい。 (2)引数に関しては眺めていればこの引数が値を渡してるというのは なんとなくわかるのですが、実際のプログラムを組んで関数を作成するときに何を引数にすればいいのかさっぱりです。それを教えて下さい。

  • VBA超初心者の質問ですけど・・・

    VBAを勉強しています。超初心者の質問なんですけど、モジュール 変数 引数 関数 定数 このへんのことがごっちゃでよく区別がつきません。軽い説明でもいただけたらうれしいです!教えてくださいm(__)m

  • VBでのAPI

    いつもお世話になっています。 今回初めて、APIを使うVBのプログラミングをしているんですが、サーバからのファイル名取得でつまずいています。 long型変数 = FtpFindFirstFile(セッション番号, ディレクトリパス, str型変数, 0, 0) って感じで、何かしらファイルが存在するかどうかは戻り値で判定できるのですが、ファイル名自体が取得できません。(複数ファイルが存在するときは、どれか一つのファイル名が取得できれば問題ないです) いろんなサイトを調べたのですが、「引数の文字列変数に"情報"が取得される」ようなふうに書かれており、はっきりしません。ちなみに私の作成中のPGでは、引数の文字列変数は何も格納なれない状態です。 どなたか詳しい方、教えてくれませんか?

  • C#のコードをVBに置き換えたい

    C#の関数の引数に、(object sender, EventArgs e) というのがあると思います。 VBでこれと同じ意味を持つ引数というのはあるのでしょうか? ご存知の方、お願いします。

  • VB 関数名 説明

    こんにちは、VBの勉強をはじめたものです。 「CStr関数は、引数の値を文字列に変換する関数」でCStrのCは恐らくCharactor(文字の意味)だと思います。  このように、いろいろな関数名の語源が分かれば学習しやすいのですが、そのようなサイトはないでしょうか? 例えば、WEBならトホホというサイトが、タグについて説明をしてくれています。 何かお分かりの方がいましたら教えてください。 よろしくお願いします。

  • DLLで格納された値をVBに渡す方法

    <VC++で作成したDLLをVBで呼ぶ処理> VBから変数をDLLに渡して値を格納してVBで受け取りたいのですが、 文字列が格納されている先頭アドレスをVBに渡したい場合の 方法を具体的に教えてください。 構造体を使用する方法はできたのですが、使わない方法(引数が変数)を 教えてください。 よろしくお願いします。