Excel Microsoft VBA

『配列変数』とは?【VBA入門講座#19】

サブロー
こんにちは。サブローです。

『Microsoft Excel』(以下Excel、エクセル)の中の機能としてある[VBA] について基本的な説明をしていきます。

仕事の改善や個人的な知識向上に役立ててください(^o^)

第19回目の今回は

VBAで使用する【配列変数】

について解説していきますので、よろしくお願いします。

前回までのVBAに関するINDEXは下記を参照してくださいね。

↓サブログ内部リンク(VBA用INDEX)↓

Excel VBA講座-目次(INDEX)

サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 目次(INDEX) 講座No内容 ...

続きを見る

「配列変数」について

配列、配列変数とは、変数の1種で同じ種類の複数のデータをまとめて格納する変数です。通常の変数は、一般的に【箱のようなもの】にたとえられることが多く、その箱には1つのものしか格納できません。(変数についてはだ下記内部リンク先の講座を参照してくださいね)

【エクセルVBAの勉強】#3 変数を利用して劇的改善 !!【初心者向け】

配列に格納された各々のデータを「要素」といい、インデックス番号(要素番号)を指定することにより格納されたデータを使用することができます。

変数を一戸建てと考えると、配列変数はアパートやマンションに例えると分かりやすいです。配列名が住所、インデックス番号(各々の箱の番号)が部屋番号といったイメージです。

「配列の宣言」について

配列を宣言するにはまず、
『Dim+変数名+(**)+As+型名を指』定します。(**には配列のインデックス番号の上限値が入ります。
ここで重要なのは、配列は"0"から始まるというのを覚えておかないといけません。(深く考えずにそういうものと理解する)
もしインデックス番号と要素数が異なるのがわかりにくい場合は、モジュールの先頭に下記のように宣言すればよいです。

’配列のインデックス番号の開始値を"1"とする
Option Base 1
Sub・・・・
・・・・
End Sub

※Option Baseステートメントで指定できるのは、"0"か"1"のみです。

「静的配列」について

配列の要素数の上限値を指定して宣言した配列を「静的配列」と呼ばれます。

’静的(0~4)の5つの要素を含む配列1
Dim 静的配列(4) As String’静的(0~4)の5つの要素を含む配列2(最小と最大のインデックス数指定でも宣言可能)
Dim 静的配列(0 To 4) As String'上と同じ意味を持つ変数を作った場合
Dim 文字0 As String
Dim 文字1 As String
Dim 文字2 As String
Dim 文字3 As String
Dim 文字4 As String

静的配列で宣言した場合は、後から要素数の変更ができないので要注意です。

「動的配列」について

後で配列の要素数を指定して宣言した配列を「動的配列」と呼ばれます。

下記にコードの例を記載します。

'配列のインデックス番号開始位置を"1"とする。(0⇨1に変更)

Option Base 1Sub 動的配列例()

'配列変数を"String型"で宣言
Dim sample() As String

'変数"row1"を"Integer型"で宣言
Dim row1 As Integer

'変数"a"を"Integer型"で宣言
Dim a As Integer

'A列の最終行を抽出し、それから1引いた値を"row1"とする
row1 = Range("A1").End(xlDown).Row - 1

'配列変数"sample"の上限値を”row1”の値とする
ReDim sample(row1)

'変数aの値に1~row1の値を順番に代入し、Nextまでの処理を繰り返す
For a = 1 To row1

'セルA2~A5(最終行)までの値を配列変数"sample"に格納する。
sample(a) = Cells(a + 1, 1).Value

'For aに戻って繰り返し処理
Next a

'変数aの値に1~row1の値を順番に代入し、Nextまでの処理を繰り返す
For a = 1 To row1

'配列変数に格納した値を、セルC2~C5に入力する。
Cells(a + 1, 3).Value = sample(a)

'For aに戻って繰り返し処理
Next a

'マクロの終了
End Sub

マクロを実行すると・・・

 

モグゾー
それでは、今回はここまで。最後までお読みいただきありがとうございました!
2020年5月16日公開



~INDEX一覧~

エクセル関数の勉強 1

サブローエクセル/Excel関数の一覧にしています。本ブログ内で記事にしているものは、講座の列にリンク付けを随時行います(^o^) ※使用頻度のランクに関しては、個人的な主観でランク付けをしています。 ...

2

サブロー危険物取扱者試験 乙4種対策講座の目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 【目次/INDEX】 講座ID分類内容リンク 1共通#1『危険物取扱者試験』の ...

3

サブローQC(品質管理)検定に関する説明が増やして行く予定なのでリンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 モグゾー対象級を記載していますが、あく ...

4

サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 目次(INDEX) 講座No内容 ...

-Excel, Microsoft, VBA
-,

Copyright© サブログ , 2020 All Rights Reserved Powered by AFFINGER5.