作成者カテゴリ返答の対象
公開
SP
09/10/2009 11:05 AM
文書リンクアイコン 動的配列について
Re: 多次元への値の設定について

きっとArrayAppend関数などの項目で見たのでしょう。
 sourceArray1(1 to 5) = [1,2,3,4,5]
とまるで出来るみたいに書いてありますが、
実際はコンパイルエラーになります。
式だとコロン区切りでいけるみたいですが、スクリプトではないようですね。

文字列を用意して、配列にして、2次元配列にセットしないといけないようです。
勉強ついでに、スクリプトを書いてしまったので参考にどうぞ。
もっと良い方法があれば誰か教えてください。

インデントは全角空白でしているので、半角空白に変換してください。
---開始---

Dim Array(39, 2) As String '40 * 3の2次元配列
Dim x As Integer '1次元目の添え字
Dim y As Integer '2次元目の添え字

Dim constSplit As String
constSplit = "A,B,C,あ,い,う,a,b,c,ア,イ,ウ,……" 'セットする配列の値を、「,」区切りでセット

Dim setValue As Variant
setValue = Split(constSplit, ",") ''「,」区切りで分割して、Variant型にセット

Dim setCount As Integer 'setValueの添え字
Dim setMaxSize As Integer 'setValueの大きさ
setCount = 0
setMaxSize = Ubound(setValue)

'セットされる順番
'Array[0][0] → Array[0][1] → Array[0][2] → Array[1][0] → Array[1][1] → … →Array[39][2]
For x = 0 To 39 '1次元目ループ
  For y = 0 To 2 '2次元目ループ
    Array(x, y) = setValue(setCount) '2次元配列にセット
    setCount = setCount + 1 '添え字をカウントアップ
    If setCount > setMaxSize Then '添え字が範囲外のときは、ループを抜ける
      Exit For
    End If
  Next
  If setCount > setMaxSize Then '添え字が範囲外のときは、ループを抜ける
    Exit For
  End If
Next

---終了---

メイントピックの動的配列とは話が少し違うので
新しくトピックを立てたほうがいいと思いますよ。


[Previous Main Document]
動的配列について (a)
. . Re:動的配列について (ねここ)
. . 多次元への値の設定について (a)
. . . . Re: 多次元への値の設定について (SP) * 現在地 *
[Next Main Document]