sironekotoroの日記

Perl で楽をしたい

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) = @_ってのと同じ事なんかな

3-3 プロシージャの引数

  • 参照渡し:変数そのものを渡す
    • 引数の定義にByRefをつける
  • 値渡し:変数の値だけ渡す
    • 引数の定義にByvalをつける

「参照渡し」とか「値渡し」というと、渡す側に違いがあるように感じますが、実際には引数をどのように受け取るかと行った、プロシージャの定義がポイントなのです

  • 「値受け取り」「参照受け取り」ではダメだったんかなぁ・・・深遠な理由?
  • 省略可能な引数を定義する場合
    • 引数の受け取り側で、引数名の前にOptionalを付ける
    • 引数の定義時に初期値を設定しておく(3を初期値とする)
      • Optional Foo As Long = 3
    • 引数が省略されたかどうかを調べる
      • IsMissing関数を使い、そこで初期値を設定する
      • If IsMissing(n) = True Then n = 3