VBAのSubってなに?
- Sub Routine(サブルーチン)の略称です。
- Routineは「ルーチンワーク(繰り返される定型作業など)」のような「手順」や「手続き」のこと。
- プログラムの主処理である「ルーチン」に対して、脇道にそれたりそれを副次的にサポートする処理なので「サブルーチン」
- VBAの場合、戻り値が無い関数、C#でいう「戻り値がvoidの関数(メソッド)」と同じです。
SubとFunction
- C言語やC#、Javaなどではすべての処理は関数。VBAのSubのようなものはありません。
- その代わりに戻り値が無い関数を作れるよう、「void(空隙、虚無)」という戻り値をダミーで用意しています。
- BASIC言語やFortran言語では戻り値が無い副処理と戻り値があるものを別に扱いました。VBAはこの流派です。
- というわけで「なんでvoidじゃないんだよ」とかVBAワールドで議論しても意味がないので、郷に入れば郷に従いましょう。
voidについて
- プログラミング言語では「何もない」を表すものとして使われます。数学でのゼロの概念に近いもの(←厳密な話じゃないのであくまで例え話です)。
- プログラミング言語の世界では数学は内包する対象なので、ゼロという概念のほかに「何もない」「無定義」「空っぽ」の概念が必要でした。なので登場しました。
- 類似品に「null」や「nil」があります。