プロシージャ

Excel VBAプロシージャとは、処理単位の一つ

処理を実行する時に一連の処理を一つの手順としてまとめたコードの集まりで

  • Functionプロシージャ
  • Subプロシージャ

の2種類がある

< スポンサーリンク >





Functionプロシージャ

処理を実行し値を返します

★記述方法

Function プロシージャ名(引数 As データ型) As 戻り値のデータ型
  ステートメント(命令文)
  プロシージャ名 = 戻り値
End Function

Function プロシージャ名(引数 As データ型) As 戻り値のデータ型 の部分から始まり
End Function で一連の処理が終了します

 

Subプロシージャ

処理を実行するだけで値は返しません

★記述方法

Sub プロシージャ名(引数 As データ型)
  ステートメント(命令文)
End Sub

Sub プロシージャ名(引数 As データ型) の部分から始まり
End Sub で一連の処理が終了します

 

ステートメントとは?

ステートメントとは命令文のことです
1行での記述が基本ですが、改行するときは _ (アンダーバー)を使用します

★改行例

msg = MsgBox(“メッセージを右寄せで表示”, vbYesNoCancel + vbQuestion + _
   vbDefaultButton3 + vbSystemModal + vbMsgBoxRight, “MSGタイトル”)

 

メモ

一つのプロシージャの中にいくつもステートメントを記述することが多いです
一つのプロシージャにすべての機能を長々とコードを記述することもできますが、機能別に一つのプロシージャとしてまとめておくと、何度もコードを記述する必要がなくなります
それに、別のプロシージャから呼び出したりといった使い回しも出来て便利ですし、あとから修正するときも簡単にできます

 

下記のようなプロシージャがあったとします

Sub 会員情報()
  会員情報を会員データから取得するステートメント
  会員の年齢を計算するステートメント
  会員情報と年齢をSheetに表示するステートメント
End Sub

年齢を計算させるような処理はよく使うので、年齢計算用のプロシージャを作っておくと、会員情報プロシージャからも使えるし、他のプロシージャからも使えるので、あちこちから使い回しができます

Sub 会員情報()
  会員情報を会員データから取得するステートメント
  年齢 = 年齢計算(会員の生年月日)
  会員情報と年齢をSheetに表示するステートメント
End Sub

Function 年齢計算(生年月日)
  年齢計算 = 生年月日から年齢を計算するステートメント
End Function

 

< スポンサーリンク >