こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

●Excel VBA 配列●教えて下さい

a~tの文字が順々に文字を追っていくプログラムにしたいと思い
配列を使用したのですが…プログラムが稼動しません、
下記のプログラムでは何が足りないのでしょうか
わかる方いたら教えて下さい;
配列の使い方についてアドバイスがあれば
そちらも教えていただきたいです…。

'――ここから――
Dim time1 As Integer, time2 As Integer, n As String
Dim X As Integer, Y As Integer
Dim yoko As String, tate As String
Dim suuji (19) As String

Sub 描画()
Cells(X, Y).Value = suuji
End Sub

Sub 削除()
Cells(X, Y).Value = ""
End Sub

Sub 待機()
For time1 = 0 To 1000
For time2 = 0 To 1000
Next
Next
End Sub

Sub 座標移動()

If yoko = "右" Then
Y = Y + 1
Else
Y = Y - 1
End If

If Y = 30 Then
yoko = "左"
ElseIf Y = 1 Then
yoko = "右"
End If

If tate = "上" Then
X = X + 1
Else
X = X - 1
End If

If X = 20 Then
tate = "下"
ElseIf X = 1 Then
tate = "上"
End If

End Sub

Sub main()

suuji (0) = a
suuji (1) = b
suuji (2) = c
suuji (3) = d
suuji (4) = e
suuji (5) = f
suuji (6) = g
suuji (7) = h
suuji (8) = i
suuji (9) = j
suuji (10) = k
suuji (11) = l
suuji (12) = m
suuji (13) = n
suuji (14) = o
suuji (15) = p
suuji (16) = q
suuji (17) = r
suuji (18) = s
suuji (19) = t

For n = 0 To 19
Cells(X,Y).Value = suuji (n)
Next

X = 1
Y = 1
yoko = "右"
tate = "上"

Do
描画
待機
削除
待機
座標移動
Loop

End Sub

'――ここまでです――

何度も同じような質問をさせてもらってすみません;

投稿日時 - 2009-08-10 18:10:20

QNo.5196795

困ってます

質問者が選んだベストアンサー

>For n = 0 To 19
>Cells(X,Y).Value = suuji (n)
>Next

これでは Cells(X,Y) に suuji (n) を19回書き換えるだけす。

座標の変化を考えましょう

投稿日時 - 2009-08-10 21:47:02

お礼

ありがとうございます!

投稿日時 - 2009-08-11 09:14:54

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

何をしたいのかよく分かりませんが突っ込みどころ満載のプログラムですね。

プログラムの間違い箇所を指摘してもらうより、デバッグの仕方を覚えましょう。

1ステップづつ実行しながら、変数の値やセルの値をその都度調べて、自分の思い通りの結果になっているかどうか確認してください。

投稿日時 - 2009-08-10 19:57:24

お礼

はい;ありがとうございます

投稿日時 - 2009-08-10 20:56:07

あなたにオススメの質問