ExcelVBAを学ぶ前に知っておくと良い基礎知識(配列、プロシージャ、アルゴリズム編)

配列、プロシージャ、アルゴリズムとは?


前回の記事では、処理におけるメインである制御に関連した要素を解説させていただきました。

今回は配列、プロシージャ、アルゴリズムについて解説いたします。

これから解説する内容について配列とプロシージャは直接プログラミングに関係する記述の要素ですがアルゴリズムは抽象度の上がった用語の話です。

今回も基本的な要素ですしやや具体的に解説致しますので難しい部分もあるかと思いますが用語だけでも覚えておいてください。

配列とは?


配列とは同じ目的で利用する変数を別々に定義するのではなく、1つの変数名に対して複数の要素を確保してまとめて管理できるようにして連続性を備えた変数のことを言います。

メリットとしては定義が容易であり、各ひとつひとつの要素をインデックス番号(添字とも言います)を使って認識、区別します。

都道府県名ひとつひとつを変数に格納する

例えば、都道府県名ひとつひとつを変数に格納する場合配列と使わず記述すると

Dim pref1 As String
Dim pref2 As String
Dim pref3 As String

pref1 = “東京都”
pref2 = “大阪府”
pref3 = “愛知県”

となり、それぞれひとつひとつの要素に対していちいちひとつずつ変数を宣言する必要があります。そこで

Dim pref(2) As String

pref(0) = “東京都”
pref(1) = “大阪府”
pref(2) = “愛知県”

とすることでpreという変数を2のインデックスを最大値として複数作り、設定されたインデックスを0から2まで変えて指定して値を入れるだけで完結します。

変数の宣言が簡素化できることも魅力的なのですが、さらには下記のようにインデックス部分を変数で指定し値を入れる事も可能です。

pre(n) = “◯◯◯”

この概念は大量の連続データを扱う現代においては当たり前のように頻繁に使われますのでぜひ覚えておきましょう。

プロシージャとは


プロシージャとは一つの目的にそった一連の処理を一つとしてまとめたもの(概念)を言います。

VBAでは主にSubプロシージャとFunctionプロシージャとよばれる2種類が存在します。

Subプロシージャは汎用的なプロシージャで書き方は以下が基本となります。

Sub プロシージャ名()
 処理に内容
End Sub

もう一方のFuntionプロシージャは基本的にはSubプロシージャと変わりませんが、大きな違いは戻り値と呼ばれる値を返すことが可能なことです。

その動きが関数のようであるため、ユーザー定義関数とも呼ばれ、自分で関数を定義(作成)したい時に使われます。

「引数」とは関数に値を与えるための変数


基本的な書き方は以下のとおり。

Function プロシージャ名(引数名1 As データ型, 引数名2 As データ型・・・) As 戻り値のデータ型
 処理に容
 プロシージャ名 = 戻り値
End Function

ちなみに引数とは関数に値を与えるための変数のことでパラメータとも呼ばれます。

まとめ


今回の回はスペースの都合により2つの解説となってしまいました。

できるだけ未経験の方が苦なく理解してもらえるように可能な限りくだいて解説したつもりなのですが、これより以後は実際組んで見て動きを体感した方が理解は早いかも知れません。

そのためにもまずは簡単で良いので実際に記述してみながらトライ&エラーを繰り返して取り組んでみてください。

※解説中の構文例はVBAでの構文です。基本的な考えは同じですが他の言語では記述の仕方が異なるのでご注意ください!