プロシージャとは?
プロシージャ(Procedure:手続き)とは、要は、ある一連の命令をまとめた処理のかたまりです。このかたまりに名前(ここではFileList)をつけておくことで、スクリプトの中で必要になる都度、呼び出すことができるのです。スクリプトの中で繰り返し行うような処理はプロシージャとしてまとめておくことで、コードをよりシンプルに記述できます。
プロシージャは、呼び出し元に何かしら結果(戻り値、と言います)を返すかどうかによって、更にSubプロシージャとFunctionプロシージャとに分類できます。FileListプロシージャは、呼び出されたらファイル一覧の出力という処理だけを行い、特に戻り値を返すわけではないので、Subプロシージャとして定義しています(*)。Subプロシージャの構文は、次の通りです。
*戻り値のあるFunctionプロシージャの例については、改めてこの連載の後半で紹介します。
[構文]Subプロシージャ(戻り値のないプロシージャ)の定義
Sub プロシージャ名 (引数, ...)
...具体的な処理...
End Sub
引数とは、プロシージャを動作する際に必要なパラメータ、入力情報です。FileListプロシージャでは、フォルダのパス(引数path)とExcel表に書き込みを開始する行番号(引数i)を受け取ることで、指定されたフォルダ直下のファイル情報を、ワークシートのi行目以降に書きこんでいるわけです。 プロシージャを呼び出すには、以下のようにします。
[構文]Subプロシージャの呼び出し
プロシージャ名 引数, ...
サンプルの中では、以下がプロシージャを呼び出しているコードです。
FileList WScript.Arguments.Item(0), START_ROW ' メインルーチンからの呼び出し
FileList subfld.Path, i ' プロシージャの中での呼び出し