おすすめのモーニング・朝食メニューを教えて!

以下のように配列を設定し、A(ix)の配列にdo untilでそれぞれに文字列を入れようとしておりますが、うまくいきません。

dountil の一回目では代入ができているようですが、2回目ができずに止まってしまいます。
おかしな点がありましたらご指摘いただけませんでしょうか。



Dim A() As String
Dim ix As Long
ix = 0
ReDim Preserve A(ix)

Dim tate As Long
tate = 1

Do Until tate = 8

A(ix) = ws.Cells(tate, 1)


tate = tate + 1
ix = ix + 1


Loop

Doの初回A(0)に文字列は入りますが、
Doの二回目以降A(1)に文字列を入れる作業ができずに止まってしまいます。
よろしくお願いします。

A 回答 (2件)

動的配列を想定されているのならば、「ReDim Preserve A(ix)」文を


「Do Until tate = 8」の直後に移動させてください。
    • good
    • 0
この回答へのお礼

できました!
ドンピシャな回答に感謝します。

ありがとうございました。

お礼日時:2012/01/29 20:00

ix = 0


ReDim Preserve A(ix)
なので
>Doの初回A(0)に文字列は入りますが、
>Doの二回目以降A(1)に文字列を入れる作業ができずに止まってしまいます
になって、当たり前のような気がしますが。

別に訳ありでなければ
Dim A() As String
Dim ix As Long
ix = 0
ReDim Preserve A(ix)

Dim A(8) As String
Dim ix As Long
ix = 0
にしては?

この回答への補足

回答ありがとうございます。
配列A(8)にはできません

配列の数はケースバイケースで変動しますので
そのためにixを別に宣言しております。

補足日時:2012/01/29 19:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報