【超初心者向き】Subプロシージャの基本を5分で理解する
エクセルVBAでプログラムを作るときには、必ず「Sub」プロシージャを使うことになります。
そこで、このページでは、VBAのSubプロシージャの基本的な使い方を解説します。
この記事の目次
Subプロシージャとは何か?
Subプロシージャとは、VBAで作ったマクロ(プログラム)を、(意味のある)ひと固まりにまとめたものです。
Subプロシージャという名前は「Sub routine」からきているようです。
- Routine=あらかじめ決められた作業
- Sub=副次的
※主となるRoutineから呼び出される「副次的な」Routineという意味
最終的には「Sub routine」の一部分だけを使って「Sub」と記述するようになりました。
Subプロシージャの書き方
Subプロシージャは、次のように「Sub」と「End Sub」で囲むように書きます。
...
End Sub
Subプロシージャの役割
Subプロシージャは、次の2つの使われ方をします。
- マクロを実行する「単位」
- マクロ内から、あるひと固まりの作業手順を呼び出す「単位」
このページでは、1つめの《マクロを実行する「単位」》として使う方法を紹介します。
Subプロシージャは、マクロを実行する「単位」
Subプロシージャは、マクロを実行するときの「実行単位」となります。
たとえば、次のようなマクロを入力してみます。
Sub WriteCellA1()
Cells(1, 1).Value = "マクロを実行"
End Sub
上記ソースコードを入力後、エクセルシートが表示されている画面で、リボンから「開発」→「マクロ」を選びましょう。
マクロの実行画面を開くと「WriteCellA1」というマクロが表示されます。
実行すると、A1セルに「マクロを実行しました」と表示されます。
入力するときの注意
「sub プロシージャ名」まで入れて、Enterキーを押すと、自動的に下記のような整形が行われます。
- sub→「Sub」に変わる
- プロシージャ名の後に「()」が入る
- 「End Sub」が挿入される
上の動画を見ると、自動で整形されている様子を見ることができますので、再度ご確認ください。
なお、「プロシージャ名」は自動整形されません。
たとえば、「sub writecella1」と入力すると、「Sub writecella1()」というようになります。
要は、「Sub」の先頭は大文字になりますが、プロシージャ名はそのまま表示されるということです。
プロシージャ名を大文字・小文字混じりにしたいときには、手動で大文字・小文字を入力してください。
複数のSubプロシージャを作って、複数のマクロを作る
Subプロシージャは複数作ることができます。
たとえば、VBAのソースコード入力画面で、次のように入力してみます。
Sub WriteCellA1()
Cells(1, 1).Value = "1つめのマクロを実行"
End Sub
Sub WriteCellB1()
Cells(1, 2).Value = "2つめのマクロを実行"
End Sub
入力後、マクロの実行画面を開くと、2つのマクロが表示されます。
実行したいマクロを指定すれば、そのマクロが実行されます。
VBEの画面からマクロを実行する
マクロは、VBE(Visual Basic Editor=VBAのソースコード入力画面)からも実行することができます。
Subプロシージャ内部を選択した状態で、画面上にある「右向きの緑三角」ボタンを押せば、そのSubプロシージャを直接起動できます。
また、Subプロシージャ内部以外で、同じく「右向きの緑三角」ボタンを押せば、どのマクロを実行するか選択する画面が出てきますので、実行したいマクロを選択しましょう。
まとめ
VBAでマクロを作るときは、マクロとして実行したい単位ごとにSubプロシージャを作りましょう。
次の記事はこちら↓