スポンサードリンク

Access VBA プログラムの書き方はいろいろあります。

VBA のプログラムの書き方は、いろいろあります。プログラミングでは、実行速度など効率を気にしなければ、正解はいくつもあるということです。

今回は復習を兼ねて、もう一つフォームを作り、別の書き方をしてみましょう。

押えておいて欲しいポイントは、以下の通りです。
・フォームのコピーの仕方
・関数の戻り値について
・戻り値を受け取る変数のデータ型
・関数の引数のデータ型に気をつける
・データ型を変換する方法


【1】Accessのファイル「SampleDB020.mdb」を起動します。


【2】フォーム「F101Test」をコピーして、「F102Test」を作成します。

access-vba-377.gif


【3】フォーム「F102Test」のコードを表示します。

access-vba-378.gif

*VBEを起動するということです。


【4】VBEが起動したら、フォーム「F102Test」のモジュールが操作の対象となっていることを、必ず確認してください。

access-vba-379.gif


【5】コマンドボタンをクリック時のイベントプロシージャを、以下のように修正します。

access-vba-381.gif


Private Sub cmdAdd_Click()
  Dim cdValue As String
  Dim nameValue As String
  
  cdValue = InputBox("PREF_CD を入力してください。", "PREF_CD")
  nameValue = InputBox("PREF_NAME を入力してください。", "PREF_NAME")
  
  Call test8.addData(CInt(cdValue), nameValue)
  MsgBox "追加完了"
End Sub



【6】ここまでの作業を「保存」してください。

access-vba-382.gif


【7】あとは前回と同じ要領で、フォーム「F102Test」の動作を確認してみてください。


【解説】
変更のあった場所だけ赤枠で囲んでみました。

access-vba-380.gif

(1)PREF_CDを保存しておくための変数を、「文字列型」に変更しました。
Dim cdValue As String


(2)InputBox関数の戻り値は文字列型なので、そのまま代入できます。
cdValue = InputBox("PREF_CD を入力してください。", "PREF_CD")


(3)しかし標準モジュール test8.addData() の最初の引数は数値型なので、データ型変換関数の CInt() を使い、文字列を整数型に変換してから渡しています。
Call test8.addData(CInt(cdValue), nameValue)

このように関数の引数には、別の関数を指定して、その戻り値を利用できます。関数部分が戻り値に置き換わるとイメージすると、納得できると思います。

Call test8.addData(CInt(cdValue), nameValue)

Call test8.addData(99, nameValue)

CInt(cdValue) が 99 になるわけです。


【ワンポイント】
以上のように、プログラミングでは、ある程度プログラマーが自由に書くことができます。同じ動作をするプログラムでも、プログラマーによってソースコードが変わってきます。

したがって正解は無いのですが、「プログラムの読み易さ」や「効率の良いプログラム」を意識して作るようにすると良いでしょう。

スポンサードリンク






Access VBA 初心者入門講座 TOPへ