Access VBA -3ページ目

行ラベル

行ラベルを指定して、そこから処理を始めたりできる。


名前を付ける注意点。


行ラベルは、コードウィンドウの文頭から記述する

先頭は文字(英字・漢字・ひらがな・カタカナ)である

長さは半角40文字以内である

大文字/小文字は区別されない

同一モジュール内で、重複する行ラベルは利用できない

終わりにはコロン( : )を付ける

On Error ステートメント

エラー処理ルーチンを有効にし、万一エラーが発生したときに実行するコードの位置を指名します。

[ 書式 ]

On Error GoTo 行ラベル名

エラー処理の形エラー処理を含んだプロシージャは、4つの部分に分けることができます。

01: Private Sub コマンド_1_Ckick( )

02:  On Error GoTo エラー  エラー処理ルーチンを有効にする

03:   DoCmd.OpenForm "F_ループ1", acNormal, "", "", , acNormal  ’実行する処理

04: コマンド1_Exit:  ’正常終了処理

05:   Exit Sub

06: エラー:  ’エラー処理ルーチン

07:   MsgBox Error$

08:   Resnme コマンド1_Exit

09: End Sub


(02:)エラー処理ルーチンを有効にするOn Errorステートメントを利用し、エラーが発生したときは、指定した行ラベルに制御を移すことができる。

(03:)実行する処理

(05:)正常終了処理エラーが発生しなかったときに、プログラムを正常終了するための処理をさせる。プログラムは上から順番に実行されるので、正常終了処理はエラー処理ルーチンの前に記述する。

(06:)エラー処理ルーチンエラーが発生したときに、実行する処理。On Errorステートメントと同プロシージャ内であれば、どこに記述してもかまわないが、通常はプロシージャの一番最後に記述する。Resumeステートメントを利用すると、エラー処理を行った後にプログラムを再開する位置を指定することができる。

プロシージャ

実行時に 1 つの単位として処理されるコードの集まり。

プロシージャには、Function プロシージャ、Sub プロシージャの 2 種類があります。

通常、プロシージャの名前は、モジュール レベルで定義します。

プロシージャを他のプロシージャ内にネストすることはできません。



Functionプロシージャ

関数とも呼ばれ、実行した結果を、呼び出し元に返すプロシージャ。

Functionプロシージャが返す値を戻り値という。

戻り値は呼び出し元で自由に利用できる。

Function ステートメントで始まり、End Function ステートメントで終わります。

[書式]

[Public(デフォルト)|Private] Function プロシージャ名[(引数リスト)] As 戻り値のデータ型
  <プロシージャの内容>
End Function



Subプロシージャ

実行結果を呼び出し元に返さないプロシージャ。

ある目的のための動作を定義する場合に利用する。

Sub ステートメントで始まり、End Sub ステートメントで終わります。

[書式]

[Public(デフォルト)|Private] Sub プロシージャ名[(引数リスト)]
  <プロシージャの内容>
End Sub



SubとFunctionの使い分け方

Sub:実行するとそのまま処理が終わり、特に次の作業に影響しない。

Function:関数と同じように使い、そこでの戻り値をどこかに代入して利用する。

ステートメント

処理を実行する命令文をステートメントと呼ぶ。

通常は1行ごとに書きますが、長いステートメントなどは、スペース+アンダースコア( _ )を行末に付け、ステートメントを分割して記述することができる。


例:

MagBox "予期せぬエラーが発生しました。" & Chr(13) & Chr(13) & _

"エラー番号" & Err.Number & Chr(13) & Chr(13) & _

"エラー内容" & Err.Description, 1, "Microsoft Access Club"


1行に複数のステートメントを記述することもできます。

マルチステートメントといい、コロン( : )で区切ります。


例:

A=B : C=D


エラーの種類

コンパイルエラー

ステートメント構文が間違っているときに発生するエラー。

これを回避するには、VBAエディタを起動し、[ツール]→[オプション]で、オプションダイアログを表示し、[編集]タブの[自動構文チェック]をオンにする。

これで間違った構文を入力したときは、エラーメッセージが表示される。


論理エラー

プログラムが論理的に正しくない為、誤った結果が出力されてしまうエラー。

これをかいひするには、コードをテストして結果を分析し、正常な動作をしているが確認すること。


実行時エラー

コードの実行中にステートメントが行う処理が不可能な場合に発生するエラー。

例: 平均点=総点/受験者数 を実行するとき、受験者数が0人のときは、このステートメントは実行不可能でエラーが発生する。