- Home ›
- Excel VBA入門 ›
- プロシージャ
Functionプロシージャ
プロシージャには Sub プロシージャだけではなく Function と言うプロシージャが用意されています。 Function プロシージャの大きな特徴は呼び出し元に値を戻す事ができることです。その為、あたかも関数のように動作しますのでユーザー定義関数とも言います。ここでは Excel VBA で Function プロシージャの使い方について解説します。
(Last modified: )
Functionプロシージャの使い方
まず Function プロシージャの定義を見ておきます。
Function プロシージャ名(引数 As データ型) As 戻り値のデータ型 プロシージャ名 = 戻り値 End Function
プロシージャ内で様々な処理を行った後で、プロシージャ名に値を格納することで呼び出し元に値を返す事ができます。この返される値を戻り値と言います。例えばInteger型の引数を1つ受け取り、戻り値としてString型の値を返すようなプロシージャは次のようになります。
Function hantei(ByVal tokuten As Integer) As String Dim kekka As String If tokuten >= 80 Then kekka = "合格" Else kekka = "不合格" End If hantei = kekka End Function
次に呼び出し元の方です。Functionプロシージャを呼び出すと同時に、呼び出したFunctionプロシージャから戻ってくる値を受け取るように記述しなければなりません。
Sub テスト() Dim kekka As String kekka = hantei(75) End Sub
上記の場合、「hantei」プロシージャを呼び出すと、「hantei」プロシージャ内で処理が行われた結果、値が戻ってきます。その戻ってきた値が変数「kekka」に格納されるわけです。
このようにFuctionプロシージャを使うことで、自分で関数を定義するように何か処理を行った結果を返す事ができるプロシージャを定義することが出来ます。
サンプルプログラム
では簡単なサンプルで試してみます。
Sub テスト() Dim kekka As String kekka = hantei(75) Range("A1").Value = kekka kekka = hantei(92) Range("A2").Value = kekka End Sub Function hantei(ByVal tokuten As Integer) As String Dim kekka As String If tokuten >= 80 Then kekka = "合格" Else kekka = "不合格" End If hantei = kekka End Function
上記のマクロを実行すると次のようになります。
-- --
Excel VBA で Function プロシージャの使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。