Excel VBAスタンダード 公式テキスト 3章 プロシージャ
3-1 他のプロシージャを呼び出す
- モジュール内に存在するプロシージャを呼び出すには
Call
という命令を使う
3-2 Functionプロシージャ
- 実行の結果を呼び出し元に返す
Function Tax(Num As Long) As Long
Function
:プロシージャの種別Tax
:プロシージャ名称(Num As Long)
:受け取る値、引数As Long
:返す型
- 受け取った引数の変数名を宣言するのか・・・
- Perlのサブルーチン内で
my ($foo) = @_
ってのと同じ事なんかな
- Perlのサブルーチン内で
3-3 プロシージャの引数
- 参照渡し:変数そのものを渡す
- 引数の定義に
ByRef
をつける
- 引数の定義に
- 値渡し:変数の値だけ渡す
- 引数の定義に
Byval
をつける
- 引数の定義に
「参照渡し」とか「値渡し」というと、渡す側に違いがあるように感じますが、実際には引数をどのように受け取るかと行った、プロシージャの定義がポイントなのです
- 「値受け取り」「参照受け取り」ではダメだったんかなぁ・・・深遠な理由?
- 省略可能な引数を定義する場合
- 引数の受け取り側で、引数名の前に
Optional
を付ける - 引数の定義時に初期値を設定しておく(3を初期値とする)
Optional Foo As Long = 3
- 引数が省略されたかどうかを調べる
IsMissing
関数を使い、そこで初期値を設定するIf IsMissing(n) = True Then n = 3
- 引数の受け取り側で、引数名の前に