Microsoft Access Club >関数を使いこなす >このページ >次頁 < 前項


プロシージャ、関数とは : 関数を使いこなす



私事で申し訳ないですが、ものぐさな私は、理論を追っていくのが嫌いです。数学でも、答えをまず知ってから計算式に取り組むのが好きなタイプです。 よって、どんどん行きますから覚悟してくださいよ。

関数とはどのようなものでしょうか?

  • 関数とは、複雑な一連の処理をひとまとめにしたプロシージャです。一般的に、関数は必要な情報(これを引数といいます)を受け取り、処理の結果で値を返します。

では、Functionプロシージャと関数との関係はどのようなものでしょう?

  • Functionプロシージャに所属し、そのなかでも引数を持つ形式で、その引数に応じた値を返すプロシージャを特に、関数と呼んでいます。

ということで、プロシージャの作成ができなければ話になりません。ここからはプロシージャについてろいろといお話をしていきます。

プロシージャの構成

下記のFunctionプロシージャを見て下さい。このような記述は、プロシージャの基本形です。 しかし、狭義の意味では、これは関数ではありません。単なるFunctionプロシージャですが、まずは、この基本形から学んでいきましょう。

Function Zeikin()

'消費税を求めましょう。

    Zeikin = 10000 * 0.05

End Function
プロシージャ名

このFunctionプロシージャは Zeikin と命名されています。一般的に、Functionの次に位置する文字列がプロシージャ名になります。

プロシージャ名はアルファベットで命名するようにしましょう。日本語の場合は、Accessバージョンが切り替わる場合など、不具合になる可能性があります。

プロシージャの実行

このプロシージャを実行すると、値として 500 が返えってきます。プロシージャに記述した * は掛け算を行う演算子です。
どうですか?プロシージャを記述することは、簡単なことでしょう。約束事を守ってさえいれば難しくはありません。

Functionプロシージャ は、
Function ***** ( )
 
End Function
 〜 の間に命令文を記述します。

これは決まりですから変更はできません。そして、 を返します。

  • 関数名や引数名、変数名などは、原則的に何を使用しても問題ありません。が、Accessがすでに使用している語句(例えば、formやtableなどは使用することはできません)
引数

プロシージャの先頭にある ( ) は引数を格納する入れ物です。ここで引数という言葉が現れましたね。先ほども、「関数は、Functionプロシージャに所属し、そのなかでも引数を 持つ形式で、その引数に応じた値を返すプロシージャを特に、関数と呼んでいます。」とお話しました。

引数を持つFunctionプロシージャ

引数に消費税を持つプロシージャを作成します。ここでは、変数dblsampleを新たに宣言します。なお、変数のデータ型は小数点以下を扱うことのできる倍精度浮動小数点数型とします。

Function Zeikin2(Dim dblsample As Double)

  '消費税を求めましょう。

    Zeikin2 = 10000 * dblsample

End Function
プロシージャの実行

このプロシージャを実行するときは、Zeikin2(0.05) と指定します。すると、10000*0.05 の計算が実行されます。将来、消費税が引き上げられ10%となれば、Zeikin2(0.1) とするだけでプロシージャを修正する必要がありません。

関数とは引数を持つプロシージャ

このように引数を持つプロシージャの場合は、プロシージャを実行するときに、その引数の値を変更するだけで対応ができます。引数を持たないプロシージャの場合は、プロシージャ内に再指定しなくてはいけませんけど・・・。

引数の値により変幻自在にプロシージャの実行結果が変わる、このようなプロシージャを特に関数と呼びます。

プロシージャを他のプロシージャで利用する方法

以下のFunctionプロシージャをご覧下さい。結果はどのようになると思います?

Function Zeikin()

    Zeikin = Zei + 500   ' -- A

End Function
Function Zei()

    Zei = 10000 * 0.05   ' -- B

End Function

Zeikinプロシージャは、Zei + 500 という計算式の値を返します。が、この中の Zei とは何でしょう? 単なるアルファベットではありません。では、種明かしを行う前に、これらプロシージャを少し修正しましょう。下記のような記述でも、実行結果は同じになります。

Function Zeikin()

     Zeikin = 10000 * 0.05 + 500

End Function

Zei を消去し、下線部分の 句( 10000 * 0.05) を追加し てみました。

種明かし

結局のところ、Zei とは、下線部分 の句である  10000 * 0.05 のことを指します。

一般的に、あるプロシージャの中で他のプロシージャを呼び出し、このプロシージャの結果(値)を利用することは、実行スピードの向上や、読みやすさ、見やすさの面でよく使われる 手法です。

プロシージャの中で、見慣れない文字列(今回の場合はZei)があると、他のプロシージャ名ではないかと、Accessは探しまくります。今回の場合は、ちょうど下側に Zei プロシージャがありましたので、これだとばかりその実行結果(1000*0.05の結果)を引っ張ってきました。

Zeikinプロシージャの結果は、1000 となります。

まとめ

いきなりややっこしい話をしましたが、このページでお話したことはプロシージャの基本です。内容までの理解はできなくていいですよ。全体の流れをつかむだけで、OKです。

  • プロシージャは引数を持つことで関数になる。
  • プロシージャから他のプロシージャを呼び出し、その値を利用することができる。

疑問点

さあ、このコーナーを読み始めている皆さん方の一番の疑問点は、下記の項目じゃないですか?

  • プロシージャ、関数をどこに記述するの?
  • どのようにしたらプロシージャ、関数を動かせるの?

私自身の経験からも、プロシージャを作成する場所、どのような方法でプロシージャを利用するのか、が最も関心の強いものでした。

では、これらは、次回ということで・・・。

 2003/06/06

ページの先頭へ 前ページへ戻る


プロシージャ、関数とは : 関数を使いこなす


 

-Microsoft Access Club-

動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。データセンター設置場所はアメリカ合衆国です。: 動画サーバードットコム
動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。
データセンター設置場所はアメリカ合衆国です。
100Mbps〜1Gbpsまで対応できます。