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


どのように記述するの-基礎編 : 関数を使いこなす



さぁ、ここまででプロシージャの記述場所やプロシージャの実行方法を今まで ご紹介してきました。プロシージャをご自分で作成する、またはAccessヘルプなどから入手して、取り敢えずそれをどのように展開するのかを頭にインプットしまたね。

今回から、記述方法の基礎の基礎をご紹介していきます。関数を作成するためには、プログラミングの記述方法をマスターしなくてはいけません。

プロシージャをマスターするには、「終わり」というものがありませんが、実際の作業で使用するのは、基礎の基礎をマスターすることで上級者への一里塚になります。

プロシージャの基本構成

下記のプロシージャをご覧下さい。

  1. プロシージャ名を記述しています。
    Functionの接頭語で始まるFunction関数であると宣言しています。以下の構文で独自の名前を設定します。命名はできるだけ英語で記述された方がベターです。Accessは欧米 仕様のプログラミングソフトなので・・・。

Function プロシージャ名 (引数は省略の場合あり) 
名前規則

名前規則は、VBA物語--備忘002.名前の付け方 を参考にして頂ければ良いですが、ちょっと変わった長めの名前なら他と重複することはないでしょう。_(アンダースコア)を途中に入れるのも 重複を避けるベターな方法です。

緑色行

皆さん、以下のような緑色の一行が見えますか?

'パスワード相違の場合、データベースを閉じます。

これは、' (シングルクォーテーション)で始まるコメント欄です。適時、プロシージャ製作にかかるコメントを記述しておきましょう。詳細は、VBA物語--備忘001.コメントの記述 をご覧下さい。

コメントの記述

コメントを記述すると下記のようになります。

Function PassWordEnter()

    'パスワード相違の場合、データベースを閉じる。
    Dim strinput As String '変数を定義する。
    Dim varEnterValue As Variant  '変数を定義する。
    Const PassWord = 1234 '定数を定義し、パスワード1234を設定する。
    
    '変数strinputに文字列を格納する。
    strinput = "パスワードを入力して下さい"
    'InputBox関数の戻り値を変数varEnterValueに格納する。
    varEnterValue = InputBox(strinput)
    '変数varEnterValueの値がPassWord値と一致しないなら、データベースを閉じる。
    If PassWord <> varEnterValue Then DoCmd.Quit
    
End Function

全てにコメントを付けてみました。すると、このプロシージャの動きが何となく分かってきますね・・・。

変数や定数の定義(青丸エリア)

この部分で、変数や定数の宣言、定義を行います。

  1. 変数は、Dimステートメントを用いて、変数名、Asキーワード、最後にデータ型を記述します。
  2. 定数は、Constステートメントを用いて、定数名、=、定数と記述します。

Dim Strmsg As String

Strmsgという文字列を変数として宣言し、この変数のデータ型を String型(文字列型)と定義しています。

Const PassWord = 1234

PassWord という文字列を定数として宣言し、この定数に1234の値を代入しています。

変数に値の代入(緑丸エリア)

この部分で宣言済みの変数に値を代入します。

strinput="パスワードを入力して下さい"

変数strinputは文字列型(String型)と定義しています。この変数はInputBoxが開いた時のメッセージになります。

本文の記述(赤丸エリア)

この部分がプロシージャの本文になります。

varEnterValue = InputBox(strinput)

変数varEnterValueにInputBoxで入力した値を代入する構文です。InputBoxはVariant型の値を返します。よって、この値を代入される変数もバリアント型にします。

  • 変数を文字列型(String型)にした場合、InputBoxの返り値が空白であればエラーが発生します。
If PassWord <> varEnterValue Then DoCmd.Quit

If構文で条件分岐を行います。定数PassWordとInpuBoxの返り値を代入されたvarEnterValueとを比較し、等しくなければAccessを閉じます。いわゆる、認証フォームですね。

体で覚える

今、なぜこのような変数、定数を用いるのか、皆さん方には理解しにくい状況かと思います。「こうだ、ああだ」と申しあげても、実感としてピンときませんね。誰でも最初はそうなんですよ。

プロシージャを書き始めたばかりでは、この変数や定数を感覚で理解するのが難しいです。で、あれば極力使わない方法で記述することもできるので、当分の間、避けて通りましょう 。

2003/06/18

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


どのように記述するの-基礎編 : 関数を使いこなす


 

-Microsoft Access Club-

アメリカ合衆国やヨーロッパのデータセンターからcPanelレンタルサーバーをご提供します。お支払いは日本国内の銀行振込で...。1ヵ月契約からOKです。
アメリカ合衆国やヨーロッパからcPanelレンタルサーバー。
お支払いは日本国内の銀行振込。
最短契約期間は1ヵ月契約からOKです。