プロシージャ基礎 | ExcelVBA(マクロ) 基礎知識

このページでは、プロシージャについて説明します。

概要

プロシージャとは、エクセルマクロ/VBA でのプログラミングにおける、最小単位です。

プロシージャのかたまりが、モジュールです。モジュールのかたまりがプロジェクトです。

それはちょうど、「段落のかたまりが、章で、章のかたまりがひとつの小説である」のと似ています。

プロシージャの種類

プロシージャには、

  1. Subプロシージャ
  2. イベントプロシージャ
  3. Functionプロシージャ

の3つがあります。

Subプロシージャ

最も基本的なプロシージャです。マクロの記録機能で作成したマクロは自動的にSubプロシージャとして作成されています。

以下は”こんにちは”と表示するSubプロシージャです。

Sub s_macro_Hello()
 MsgBox "こんにちは"
End Sub

これはボタンなどと紐付いていません。実行するには、VBEにて、[実行] → [Sub/ユーザーフォームの実行]を押して下さい。

またはツールバーにて<Sub/ユーザーフォームの実行>ボタンを押しても一緒です。

一行ずつ説明します。

Sub s_macro_Hello()

サブプロシージャ名s_macro_Helloがここから始まります、という意味です。

MsgBox "こんにちは"

”こんにちは”とメッセージボックスに表示します。

End Sub

サブプロシージャ名s_macro_Helloがここで終わり、という意味です。

 

イベントプロシージャ

「ボタン押す」とか「ブックが開かれる」とか「シートがアクティブになる」などの、何らかのきっかけにあわせて実行されるプロシージャです。

そのきっかけのことをイベントといいます。理解としては”トリガ”となる動作、と考えれば覚えが良いでしょう。

Functionプロシージャ

Functionプロシージャは、Subプロシージャと同じく、他のプロシージャから呼び出すことができます。

ただし、違うのは、そのプロシージャ内で実行した結果を、呼び出し元に返すという特徴があることです。
その呼び出し元に返される値のことを「戻り値」といいます。

セルA1に名前が入力されており、ボタンを押すと継承をつけて”●●様”と表示するにはこうします。

Private Sub CommandButton1_Click()
 MsgBox Keishou(Range("A1").Value)
End Sub
Function Keishou(strName)
 Keishou = strName & "様"
End Function

一行ずつ説明します。

Private Sub CommandButton1_Click()

「CommandButton1」という名前のボタンが押されたら実行されるイベントプロシージャです。このプロシージャからFunctionプロシージャを呼び出します。

MsgBox Keishou(Range("A1").Value)

セルA1に対し、プロシージャKeishouを実行しています。Keishouは関数ではありません。ユーザ(この場合は管理者)が作ったプロシージャです。
つまり、FunctionプロシージャKeishouの引数に、セルA1の値を指定しているのです。

End Sub

「CommandButton1」という名前のボタンが押されたら実行されるプロシージャの終わりです。

Function Keishou(strName)

ここからがFunctionプロシージャです。指定された引数が変数strNameとなっています。この変数strNameはFunctionプロシージャ内部で使用されます。
strNameには、呼び出しもとの引数に指定されたセルA1の値が入っています。

Keishou = strName & "様"

Functionプロシージャ名 = 戻り値

これが戻り値を指定する構文です。”&”は文字列と文字列を連結する演算子です。この文を日本語にすれば「Keishouの戻り値は、strName様」だ、ということになります。

前述の通り、変数strNameはセルA1の値であり、セルA1の値はここでは”山田太郎”なので、結果的に「Keishou =" 山田太郎様"」と同義です。
そして、プロシージャ名のの右辺が戻り値なので、呼び出し元プロシージャの「MsgBox Keishou(Range("A1").Value)」は、「MsgBox "山田太郎様"」と同じ意味になり、そのように表示されることになるわけです。

End Function

Functionプロシージャの結びです。Functionプロシージャは”Function”で始まり、”Function”で終わります。

 

 


 

 

最終更新:2010年09月13日 22:45
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。