Excel VBA プロシージャって何?

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

 

< スポンサードリンク >



サブコンテンツ

このページの先頭へ