« 特定の文字で区切られた文字列を分割して配列にいれる | トップページ | 2次元配列の使い方 »

2010年10月 5日 (火)

1次元配列の使い方

配列の使い方を何回も調べてしまう人は
一度、頭の中で使い方を整理するといいかもしれません。

配列の使い方がはっきりしない理由は、
配列の使い方が大きく分けて2種類あることだと思います。
この2つの一部分と一部分が混ざって
間違った配列の使い方をして
結局、調べなおすということを
何回もしました。

そんな訳で、配列の使い方を整理したいと思います。
1次元配列を例にします。

2つの配列の使い方:

1. Variant型の変数にArray関数を使って配列をいれる。
2.配列を宣言してそれぞれの要素を指定する。
    2-a. 固定長配列
    2-b. 動的配列

まず、1つ目から整理します。

最初にVariant型で変数を宣言する。

Dim a As Variant

次にVariant型の変数aにArray関数で配列を代入する。

a = Array("a", "b", "c", "d")

この例の場合は、

UBound(a) = 3
a(0) = "a"
a(1) = "b"
a(2) = "c"
a(3) = "d"

といった配列になります。

1つ1つの要素を指定するには次のようにします。

a(1) = "z"

とすると、配列はこのように変わります。

a(0) = "a"
a(1) = "z"
a(2) = "c"
a(3) = "d"

For...Next ステートメントを使って各要素にアクセスするには
次のようにします。

Dim i As Integer
For i = 0 To UBound(a)
    a(i) = 何らかの値
Next i

サンプルコードはこちら

配列の使い方1のサンプルコード:

Sub macro101005a()
'配列の使用方法
'Array関数を使って
   
    Dim a As Variant
    a = Array("a", "b", "c", "d")
    a(1) = "z"
   
    'イミディエイトに表示する
    Dim i As Integer
    For i = 0 To UBound(a)
        Debug.Print "a(" & i & ") = " & a(i)
    Next i
   
     'ウォッチウィンドウで配列を確認できます
    Stop
   
End Sub

2つ目の配列の使い方は、配列を宣言する方法です。
配列には、固定長配列と動的配列があるので
2つに分けて整理します。

2-a. 固定長配列を宣言する。

Dim a(3) As String

この場合の配列は、要素数4の文字列型です。
宣言しただけの状態では、値は何も入っていません。

a(0) = ""
a(1) = ""
a(2) = ""
a(3) = ""

1つの要素を指定したり、各要素にアクセスする方法は
配列の使い方1と同様です。

サンプルコードはこちら

固定長配列の使い方のサンプルコード:

Sub macro101005b()
'固定長配列の使用方法

    Dim i As Integer
    Dim a(3) As String '固定長配列の宣言
    For i = 0 To UBound(a)
        a(i) = Chr(97 + i)
    Next i
   
    'イミディエイトに表示する
    For i = 0 To UBound(a)
        Debug.Print "a(" & i & ") = " & a(i)
    Next i
   
     'ウォッチウィンドウで配列を確認できます
    Stop
   
End Sub

2-b. 動的配列を宣言する。

Dim a() As String

次に、配列のサイズを指定する。

ReDim a(3)

この配列は上の固定長配列の例と同じになります。

サンプルコードはこちら

動的配列の使い方のサンプルコード:

Sub macro101005c()
'動的配列の使用方法

    Dim i As Integer
    Dim a() As String '動的配列の宣言
   
   
    ReDim a(3) 'サイズを変更
   
    For i = 0 To UBound(a)
        a(i) = Chr(97 + i)
    Next i
   
    'イミディエイトに表示する
    For i = 0 To UBound(a)
        Debug.Print "a(" & i & ") = " & a(i)
    Next i

   
     'ウォッチウィンドウで配列を確認できます
    Stop
   
End Sub

2次元配列の使い方は次の記事を参照してください。
記事「2次元配列の使い方

|

« 特定の文字で区切られた文字列を分割して配列にいれる | トップページ | 2次元配列の使い方 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 1次元配列の使い方:

« 特定の文字で区切られた文字列を分割して配列にいれる | トップページ | 2次元配列の使い方 »