• 締切済み

VBAのプロシージャのsubについて

VBAのサブルーチンとプロシージャについての質問です。 VBAのプロシージャは,サブルーチンのsubで書き始めると思いますが, どうしてプロシージャなのに,サブルーチンのsubで書き始めるのでしょうか?

みんなの回答

  • SI299792
  • ベストアンサー率47% (774/1619)
回答No.2

 私も、最初は戸惑いました。メインルーチンなのに、Sub ~End Sub をつける。  VB VBSならメインルーチンは、いきなりプログラムを書くことが可能です。(必要なのはサブルーチンのみです)  多分、VBA の場合、ボタンを押す等何らかの形で呼び出す(その為には名前が必要)からだと思います。(VB VBSなら、メインルーチンは1つなので、名無しでもいい)  これは、こういうものだと割り切るしかないです。

回答No.1

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になっていたでしょう。

関連するQ&A