Chapter2-2 プロシージャとは

「プロシージャ」とは、VBAで一連の処理を記述する際の、ひとまとまりの処理単位を示すものです。フォームなどからあるプロシージャが呼び出されると、そのプロシージャの1行目から順番に処理が実行され、最終行で一連の処理が完結します。


■プロシージャの種類
プロシージャには、「Functionプロシージャ」と「Subプロシージャ」の2種類があります。
<Functionプロシージャ>
一般的に”関数”とも呼ばれ、与えられた値を元に計算を行いその結果の値を返します。Accessには、あらかじめ用意された多くの「組み込み関数」がありますが、Functionプロシージャを使うことによって、自分独自の関数を作成することができます。

また、標準モジュール上のFunctionプロシージャは、クエリの演算フィールドやフォームのコントロールのプロパティからも呼び出すことができます。なおそれらの場合には、返り値がなくてもFunctionプロシージャにする必要があります。

Functionプロシージャの構文:
Function プロシージャ名(引数1 As データ型, 引数2 As データ型・・・・) As 返り値のデータ型
  〜〜〜〜〜〜〜〜
  〜〜〜〜〜〜〜〜
  〜〜〜〜〜〜〜〜
  プロシージャ名= 返り値

End Function


Functionプロシージャの例:


<Subプロシージャ>
一連の操作を順番に実行する処理などを記述するプロシージャで、返り値は持ちません。

Subプロシージャの構文:
Sub プロシージャ名(引数1 As データ型, 引数2 As データ型・・・・)
  〜〜〜〜〜〜〜〜
  〜〜〜〜〜〜〜〜
  〜〜〜〜〜〜〜〜

End Sub


Subプロシージャの例:
Sub OpenForm(strFrmName1 As String, strFrmName2 As String)
'指定したフォームをいっしょに開きます
  DoCmd.OpenForm strFrmName1
  DoCmd.OpenForm strFrmName2
  MsgBox "フォームを開きました"
End Sub



■プロシージャの作り方
個々のプロシージャは次のような手順で作成します。
  1. VBEのコードウィンドウを開く

  2. 空行部分に”Function”または”Sub”と入力

  3. スペースを入力後、任意のプロシージャ名を入力

  4. 半角の前カッコを入力し、続けて任意の数の引数をカンマで区切って入力

  5. 半角の後カッコを入力

  6. Functionプロシージャの場合はその次に返り値のデータ型を入力

  7. 最後にEnterキーを押す
    これによって“End Function”などの語句が自動的に追加され、プロシージャの枠組みが生成されます

  8. プロシージャ内にプログラムを書き込んでいく


■プロシージャの実行
作成したプロシージャは、さまざまな方法で呼び出してテストすることができます。
  • イミディエイトウィンドウからの呼び出し


  • 別のプロシージャからの呼び出し

    ※プロシージャ内のプログラムからイミディエイトウィンドウに出力する場合は「?」は使えません。「Debug.Print」命令を使います。

  • Subプロシージャの呼び出し

    ※Subプロシージャは返り値がないため、先頭に「?」や「Debug.Print」を付ける必要はありません。また、引数をカッコで囲む必要もありません。



引数を持たないプロシージャの実行
引数を持たないプロシージャは、その場で直ちに実行させることができます。それには、カーソルがそのプロシージャ内にある状態で、次のいずれかの操作を行います。
  • メニューの[実行]-[Sub/ユーザー フォームの実行]を選択する

  • ツールバーの[Sub/ユーザー フォームの実行]ボタン をクリックする

  • キーボードよりF5キーを押す
| Index | Prev | Next |

 

Copyright © T'sWare All rights reserved