- Home ›
- Excel VBA入門 ›
- 基本文法
Subプロシージャを記述する
VBA ではプログラムを Sub プロシージャの中に記述します。 Sub プロシージャは「Sub プロシージャ名」から始まって「End Sub」 で終わり、このあいだに実行する処理を記述していきます。 Excel ではプロシージャ名を指定してプログラムを実行することができます。ここでは Excel VBA で Sub プロシージャを記述する手順について解説します。
(Last modified: )
Subプロシージャとは
Sub プロシージャの構文は次のようになっています。
Sub プロシージャ名() End Sub
プロシージャは Sub
で始まり End Sub
で終わります。この間に実際のコードを記述します。そしてプロシージャを識別するために「Sub」の後ろにプロシージャ名を記述します。
VBE のモジュール内には複数の Sub プロシージャを記述できるので、それぞれのプロシージャを区別するために Sub
のあとにプロシージャ名を指定します。プロシージャ名はアルファベット、ひらがな、漢字などを使えます。数字も使えますがプロシージャ名の先頭には文字を使わなければなりません。またアンダーバーは使えますが記号やスペースなどは使えません。
正しいプロシージャ名:
Sub Test() Sub 印刷する() Sub テスト_011()
誤ったプロシージャ名:
Sub 011Test() '数字から始まってはいけない Sub テスト@() '使用できない記号 @ が使われている
VBA では 1 つのモジュール内に複数の Sub プロシージャを記述することができます。複数の Sub プロシージャを使用する場合は、それぞれ異なるプロシージャ名を指定して Sub プロシージャを記述してください。
Sub 計算() ... ... End Sub Sub グラフ作成() ... ... End Sub
※ VBA では Sub プロシージャの他に Function プロシージャというものがあります。大きな違いは Sub プロシージャが戻り値を返さないのに対して Funciton プロシージャは呼び出し元に戻り値を返すことができます。 Function プロシージャについては別のページで詳しく解説します。
Subプロシージャを記述する場所
Sub プロシージャを記述するには Visual Basic Editor を起動します。
Sub プロシージャはモジュールの中に記述します。現在のブックにモジュールがまだない場合は、「挿入」をクリックし、表示されたメニューの中から「標準モジュール」をクリックしてください。
標準モジュールが追加されます。
追加した直後はコードウィンドウが追加したモジュールの内容を表示したり編集したりする状態となっています。複数のモジュールを追加していたり、コードウィンドウに別の内容が表示されている場合には、これからコードを記述するモジュールをダブルクリックしてください。コードウィンドウに現在モジュールに記述されているコードが表示されます(まだコードは何もないので現在は空です)。
ではコードウィンドウで Sub プロシージャを記述します。
同じモジュール内に複数の Sub プロシージャを記述することもできます。複数の Sub プロシージャを記述すると、プロシージャとプロシージャの間に自動的に横線が表示されます。
なお Excel でマクロを記録すると標準モジュールの中に Sub プロシージャが自動で作成され、マクロ名がプロシージャ名として使用されます。そしてマクロとして保存された操作内容が VBA のプログラムとして Sub プロシージャ内に記述されます。詳しくは「Excel VBAとマクロの違い」を参照されてください。
Subプロシージャを実行する
Excel では記述した Sub プロシージャを指定して実行することができます。複数の Sub プロシージャを記述していた場合は、その中の一つを選択して実行します。
例えばモジュールの中に 2 つの Sub プロシージャがある状態で実行してみます。どちらかの Sub プロシージャの Sub
から End Sub
の中にカーソルがある状態で、「実行」をクリックし、表示されたメニューの中から「Sub/ユーザーフォームの実行」をクリックしてください。
カーソルがあった Sub プロシージャが呼び出されて実行されます。今回は「グラフ作成」 Sub プロシージャ内にカーソルがあったので「グラフ作成」が実行されました)。
今度はカーソルがいずれの Sub プロシージャ内にもない状態で「実行」をクリックし、表示されたメニューの中から「Sub/ユーザーフォームの実行」をクリックしてください。
実行する Sub プロシージャの選択画面が表示されます。「マクロ名」のところにプロシージャ名の一覧が表示されるので、実行したいプロシージャ名をクリックして選択したあとで「実行」をクリックしてください。
選択した Sub プロシージャが呼び出されて実行されます。
このように Excel では Sub プロシージャ単位でプログラムを呼び出して実行することができます。
-- --
Excel VBA で Sub プロシージャを記述する手順について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。