はじめに

VBA超入門シリーズ:その2 ~いざ実行~

の続きです。

 

聞きなれない単語が増えてきますよ!!

 

 

Subプロシージャ

、、、ぷ、ぷろしーじゃ??

プロシージャ 【 procedure 】
「手続き」という意味の英単語。
コンピュータプログラム内で複数の命令や処理などを一つにまとめ、外部から呼び出し可能にしたものをこのように呼ぶ。

IT用語辞典 プロシージャとはより引用

VBAでプログラムを記述したあとで、実際に実行するにはプログラムを呼び出す必要があります。その呼び出す単位となるのがプロシージャです。

プロシージャの構文は以下の通り。

 

Sub プロシージャ名()

End Sub

 

「Sub」で始まり「End Sub」で終わり、この間にプログラムを記述していきます。

プロシージャを識別するために「Sub」の後にプロシージャ名を記述します。

プロシージャ名にはアルファベット、ひらがな、漢字、数字が使用可能、
記号はアンダーバー(_)のみ使用可能です。
プロシージャ名の先頭は文字を使わないといけません。

Sub procedure()
Sub プロシージャ名()
Sub プロシージャ_1()

 

実際にコードウィンドウに記述していきます。

 

Sub プロシージャ_1()
Range("A1") = 100
End Sub Sub プロシージャ名()
Range("A2") = 200
End Sub

1つのモジュール内に複数のプロシージャを記述できます。

複数のプロシージャを記述した場合、自動的にプロシージャとプロシージャの間に横線が入ります。

実行してみます。

2つのプロシージャを記述したので「プロシージャ_1」と「プロシージャ名」が出てきます。

今回は「プロシージャ名」を実行します。

無事実行!

 

「プロシージャ名」が呼び出され、そのプログラム(Range("A2") = 200)が実行されました。

事に「A2セル」に「200」を記述することができました。

 

 

コードの記述ルール

中身を充実させていきます。

 

プロシージャを定義したら、SubとEnd Subの間に実際にExcelに行わせたい処理を表すコードを記述します。
コードはプロシージャ内に複数記述することができます。

 

Sub 記述ルール()
    Range("A1") = 100
    Range("A2") = 200
    Range("A3") = 300
End Sub

 

3行のコードです。

1行毎に1つの処理を行います。「テスト」プロシージャが呼びだされたとき上から順に処理されます。
まずは「Range(“A1”) = 100」←セルA1に100を記述
次に「Range(“A2”) = 200」←セルA2に200を記述
最後に「Range(“A3”) = 300」←セルA3に300を記述

 

VBAでは改行を入れることで一つの処理が終わったと判断されます。
もしも1つの行に複数の処理を記述したい場合は、一つめの処理の後にコロン(:)を記述し、二つ目の処理を記述します。

 

Sub 記述ルール()
    Range("A1") = 100 : Range("A2") = 200
    Range("A3") = 300
End Sub

 

また、改行されるまでが一つの処理なので途中で改行できません。

 

Sub テスト()
    Range("A1")
     = 100
End Sub

 

このように書いてしまうと「Range(“A1”)」と「= 100」は別処理とみなされます。
文法的に間違いなのでエラーです。

処理が長くなり見やすさのために途中で改行したい場合には、半角スペースの後にアンダーバー(_)を記述します。

 

Sub 改行表示()
    Range("A1") _
     = 100
End Sub

 

上記コードは下に書いたものと同じ扱いになります。

 

Sub 改行表示()
    Range("A1") = 100
End Sub

 

 

プロシージャについてとプロシージャ内のコードの記述方法のルールがなんとなーくわかってきました。

次回は文法について学習しましょう。

次回に続く。