マクロ(VBA)
 PR

Excelのマクロ(VBA)の配列ってなに?使い方も紹介します

ねこる
記事内に商品プロモーションを含む場合があります

Excelのマクロ(VBA)は、処理スピードが他のプログラム言語に比べて遅い傾向にありますが、配列を使うことで処理が早くなります。

配列は、プログラミングの中で1つの山場かもしれません。

しかし、このページで詳しく紹介しているので、見ていただければ配列がわかるようになります。

では、配列について解説していきます!

Excelのマクロ(VBA):配列とは

配列とは、架空のつらなった箱に値(数字なり、文字)を入れられるものです。

変数は、1つの値・文字しか入れられないですが、配列は指定した数の箱を用意できるので何個でも入ります。

これを、1次元配列と読んだりもします。

2次元配列もあり、このように縦方向と横方向に箱がつらなっているものです。九九の表を思い出してもらうとわかりやすいですね。

配列が使えるようになると、無駄なコードを書かなくてもよくなったり、処理が早くなったりするので、プログラミングの効率化になりますよ!

Excelのマクロ(VBA):配列の使い方

配列の使い方を紹介します。

配列の宣言

配列を使うには、宣言をする必要があります。

1Dim myArray() As Intger ' 数字の配列
2Dim myArray() As String ' 文字の配列

配列に格納する値の個数が決まっている場合は、数を指定しましょう。

1Dim myArray(5) As Intger

配列の数は、要素数と言います。

5個と決まっているのなら、0,1,2,3,4なので、要素数を5とします。

要素数は1からではなく、0から数えるので注意してください。

配列の初期化

配列に格納する値が決まっている場合は、初期化で値を格納してしまいましょう。

決まっていなければ不要になります。

数字の初期化

1myArray = Array(10, 3, 6) ' 配列の初期化

文字の初期化

1myArray = Array("鈴木", "佐藤", "小林") ' 配列の初期化

このように初期化することもできます。

1myArray(0) = "鈴木"
2myArray(1) = "佐藤"
3myArray(2) = "小林"

配列の要素にアクセス

配列の要素にアクセスするには、このようにします。

if文の比較に使う場合

1If x >= myArray(0) Then
2
3End If

変数に配列の要素を代入する場合

1Dim x As String
2x = myArray(0)

配列といっても、要素数という数字がついているだけで、1つの変数のように使えます。

配列の最大要素数を取得

配列の要素数でループさせたり、要素数の数によって分岐させたりすることがあります。

そういったときは、このようにして要素数を取得します。

1UBound(myArray) + 1 ' 配列の要素数を取得

もし、5つの値が格納されていたら、要素数4が取得されるので+1して5としています。

Excelのマクロ(VBA):2次元配列の使い方

2次元配列の使い方を紹介します。

2次元配列が使えると、1つのワークシートを1つの2次元配列に入れられるので、ものすごい処理が早くなるので覚えてほしいです。

宣言と初期化

縦3、横3の2次元配列を宣言するには、次のようにします。

1Dim myArray(0 To 3, 0 To 3) As String ' 2次元配列の宣言
2myArray(0, 0) = "佐藤" ' 要素へのアクセス

宣言の際に数がわからなければ、記載しなくても問題ありません。

このように配列の宣言をしておいて、後から1次元、2次元配列どちらにでも変化させることが可能です。

1Dim myArray() As String ' 2次元配列の宣言

配列による高速化

2次元配列にワークシートの内容を格納し、配列で処理することでセルへの描写が無くなり、処理の高速化につながります。

例えば、A1からB100までの範囲で処理をしたい場合は次のようにします。

1Dim myArray() As Variant
2myArray = Range("A1:B100")
3'・・・処理・・・
4Range("A1:B100") = myArray

処理が終わると、配列をセルへ転記しています。

一度に転記することで、毎回転記するより早くなるということですね。

Sponsor link

Excel VBAを勉強するなら「できる大辞典」がおすすめです。

辞書なのでピンポイントで学ぶことができます。

大学時代、2016年版を購入して勉強していましたが相当使いました。

ネットだけでも勉強はできますが、本を読みながらVBAを勉強したい方は購入してください。

amazonで見てみる

ABOUT ME
ねこる
ねこる
管理者
Mac / プログラミング / Excel / マクロ(VBA) / カメラ

調べたり、効率的なことが好きです。

記事URLをコピーしました