VBAを学習していると「配列」という言葉に衝突すると思いますので、「配列とは要するに何なのか」簡単にわかりやすく解説します。配列のメリット・デメリットについても解説しますね。
配列とは何か(1):配列の定義
配列のことについてそれなりに学習していると思いますので釈迦に説法になりますが、念のため、配列の定義について説明します。
配列の定義
同じデータ型の値の集まりのことを配列といいます。
おそらくこんなことはわかっていると思います。。。ので、配列とは何なのか具体的に見ていきましょう。
配列とは何か(2):1つの変数の中に複数のデータを入れられる
配列とは、要するに
「1つの変数の中に複数のデータを入れられる」
ということなんです。
他のサイトや本では、「複数の部屋がある」だとか「大量のデータを処理する」だとか、いろいろとまどろっこしい説明がされていますが、よくわからない!!
大事なことなのでもう一度言います。
配列とは、 「1つの変数の中に複数のデータを入れられる」 ということです。
具体例を挙げてみましょう。
変数「果物」を準備します。
通常、1つの変数には1つの値しか入りません。
が、配列を使うと、1つの変数に複数の値を入れることができるようになります。
下の図のように、変数「果物」を配列にすることで、「りんご」「バナナ」「ぶどう」「なし」という複数のデータを入れることができるようになるのです。
配列のどの部屋に何のデータを入れるのかも指定できます。
下の図では、変数「果物」にの4つの部屋を作り、部屋番号1~4にそれぞれのデータを入れています。
配列とは、 「1つの変数の中に複数のデータを入れられる」 ということなのです。
配列とは何か(3):配列はエクセル表に対応している
さて、変数を配列化すると複数のデータを入れられることがわかりましたが、
で、それがなんなの? なにに使うの?
はい、説明します。
じつは、配列はエクセル表に対応しているんです。
下のエクセル表を見てください。
果物の商品名と価格がズラリと入力されています。
このズラリと並んだデータ群がまさに配列そのものなんです。
このデータ群を一つの変数に入れて管理することが、配列を使うということなんです。
一つの変数に入れて何ができるのか?
例えば、
- 他のシートにコピペする。。。← 各データをいちいちコピペしなくても、1つの変数をコピペすれば済む。
- 各果物に対する価格をセット(一対)で管理できる。。。
などが挙げられます。
データ数が少ないと配列の必要性が感じられないかもしれませんが、数千のデータを扱う場合は一括管理できるので、本当に役立つのです。
配列とは何か(4):配列のメリット
配列のメリットは一言でいうと、
「1つの変数だけで複数のデータを扱える」
これに尽きます。(ほかにも処理時間の高速化などがありますが、それは技術的な部分になりますので今回は割愛します。)
下の表を見てください(上に出てきた表と同じものです)
これを他のセルやシートにコピペする場合を考えてください。
配列を使わないと、1行1行(もしくは1列1列)コピペする必要があります。
上の表は9行2列の表なので1行1行コピペしても大した労力になりませんが、もし1000行3000
列のデータだとしたら、、、1行1行コピペしてられませんよね。
配列として1つの変数にデータを入れるのはすごく簡単です(ややこしくなるのでコードは載せません)。
配列のメリットは
「1つの変数だけで複数のデータを扱える」
ということなのです。
配列とは何か(5):配列のデメリット
配列のデメリットはなんでしょうか。
あえて挙げるなら、「VBA初心者が配列を扱うのは、少々難しい」ということでしょうか。
少々難しいというのは、配列の記述方法に少し戸惑うことがあるからです。
例えば、
- 配列には動的配列、静的配列がある
- 配列にデータを入れる前に、配列の部屋数を決める必要がある
- 配列にデータを入れる際に、入れる部屋を指定する必要がある
- データを取り出す際にも、取り出す対象の部屋を指定する必要がある
などです。
とはいえ、自称上級者の筆者でさえ、久しぶりに配列を使う際には「あれ?どう記述するんだけ?」ということがあります(笑)
VBA配列とは何か?メリット・デメリットのまとめ
以上、配列について解説してきました。
配列とは、 「1つの変数の中に複数のデータを入れられる」 というものです。
配列にするメリットは、 「1つの変数だけで複数のデータを扱える」 ことです。
配列のデメリットは、「記述方法が少し戸惑う」ことです。
配列は膨大なデータ量になればなるほど役に立つことが実感できるものです。
最初のうちは無理して配列を使う必要はありません。
筆者もVBAを始めて半年間は配列を使いませんでした(笑)
VBAに慣れてくると、自然に配列を使ったほうがラクだと思えるようになるので、まさに習うより慣れろですね!
コメント