Excel VBA

VBA超入門シリーズ:その3 ~基本ルール~

はじめに

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) が実行されました。

 

コードの記述ルール

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

 

 

プロシージャを用意したら、「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つの処理が終わったと判断します。
どうしても1つの行に複数の処理を記述したい場合は、1つ目の処理の後にコロン (:) を記述し、2つ目の処理を記述します。

 

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
1行が長い時に役に立つね!

 

プロシージャについてと、コードの記述ルールがなんとなーく理解できたかと思います。

 

次回は変数を使います!
プログラミングや自動化において一番のポイントです…!

 

「VBA超入門シリーズ:その4 ~変数~」に続く