- 締切済み
VBAのプロシージャのsubについて
VBAのサブルーチンとプロシージャについての質問です。 VBAのプロシージャは,サブルーチンのsubで書き始めると思いますが, どうしてプロシージャなのに,サブルーチンのsubで書き始めるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- SI299792
- ベストアンサー率47% (774/1619)
私も、最初は戸惑いました。メインルーチンなのに、Sub ~End Sub をつける。 VB VBSならメインルーチンは、いきなりプログラムを書くことが可能です。(必要なのはサブルーチンのみです) 多分、VBA の場合、ボタンを押す等何らかの形で呼び出す(その為には名前が必要)からだと思います。(VB VBSなら、メインルーチンは1つなので、名無しでもいい) これは、こういうものだと割り切るしかないです。
- chie65536(@chie65535)
- ベストアンサー率44% (8741/19839)
VBAでのプロシージャとは「処理内容がひとまとめになっているもの」を指し、sub~end subで囲まれた物、function~end functionで囲まれた物を指します。 ですので「VBAのプロシージャは,サブルーチンのsubで書き始める」と言うのは誤った認識です。subで書き始めるのだけに限定しちゃうとfunctionプロシージャをプロシージャと呼べなくなってしまいます。 プロシージャには、subで書き始める物もあれば、functionで書き始める物もあります。 subプロシージャは、返り値などを持たず、大昔のBASIC言語のSUB ROUTINE(サブルーチン)と同様の働きをするので、予約語subが使われます。 functionプロシージャは、返り値などを持ち、関数(FUNCTION)の様な働きをするので、予約語functionが使われます。 もし、プロシージャが、sub型、function型の2つではなく、1種類しか無かったら、きっとprocedure~end procedureになっていたでしょう。