何度も質問させて頂いてます。すみません、
下記のプログラムはこの場で教えて頂いたプログラムで、
実行すると●の後を▲や■が追いかける動きをします。
下記のプログラムをある程度使用して
1~20の数字が順々で追いかけっこする
プログラムを作成するにはどのようにすればいいのでしょうか…
できればプログラムは長めにならず
20の数字から簡単に増やすことのできるような
そんなプログラムが作成したいです…
どなたかアドバイスお持ちの方
教えて下さいお願いします...
Dim time1 As Integer, time As Integer
Dim X As Integer, Y As Integer
Dim X1 As Integer, Y1 As Integer
Dim X2 As Integer, Y2 As Integer
Dim maru As String, yoko As String, tate As String
Dim sankaku As String, shikaku As String
Sub 描画()
Cells(Y2, X2).Value = shikaku
Cells(Y1, X1).Value = sankaku
Cells(Y, X).Value = maru
End Sub
Sub 削除()
Cells(Y2, X2).Value = ""
End Sub
Sub 待機()
For time1 = 0 To 1000
For time2 = 0 To 1000
Next
Next
End Sub
Sub 座標移動()
X2 = X1
Y2 = Y1
X1 = X
Y1 = Y
If yoko = "右" Then
X = X + 1
Else
X = X - 1
End If
If X = 30 Then
yoko = "左"
ElseIf X = 1 Then
yoko = "右"
End If
If tate = "上" Then
Y = Y + 1
Else
Y = Y - 1
End If
If Y = 20 Then
tate = "下"
ElseIf Y = 1 Then
tate = "上"
End If
End Sub
Sub main()
maru = "●"
sankaku = "▲"
shikaku = "■"
X = 1
Y = 1
X1 = 1
Y1 = 1
X2 = 1
Y2 = 1
yoko = "右"
tate = "上"
Do
描画
待機
削除
待機
座標移動
Loop
End Sub
No.1ベストアンサー
- 回答日時:
こんばんは。
前回(http://oshiete1.goo.ne.jp/qa5187630.html)の回答にあったように、座標を計算する必要があるのは先頭だけで、あとは順にずらして行けばよく、最後尾の表示を消せばよいことになります。
●■▲の3種類だったものが、20種類に増えただけで、考え方は同じですね。数が増えたので、効率的に処理するには配列を利用するのが妥当かと。
それぞれの表示オブジェクト(●、■、▲とか1,2,3・・・など)の座標を配列に記憶するようにしておいて、その座標移動と表示処理をループで行うようにすれば、たいした手間にはならないでしょう。
(初期設定などは追加の必要がありますが…)
要は、1回の移動処理に際して、「n番の座標にn-1番の座標を入れて、表示内容をn番のもで上書きする」ということをループで行えばよいです。
先頭に新しい値が入るので、実際には、ループ処理は後ろから行う方が簡単だと思います。(最初に最後尾を消して、順に後ろから表示してゆく)
(配列そのものを逆順に作っておくという方法もありますが)
残念ながら、前々回の回答は、ほとんど参考にはならなかったようですね。
・セルに依存しないオブジェクトの利用と、方向・位置の自由度
・タイマーによる時間管理 など
いえいえいえ!
とても参考になっております
ただ私ができなさ過ぎなだけで
fujillinさんのアドバイスには
助けて頂いてます。
伝わりにくいと思いますが
毎回ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:07
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:13
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) このマクロの説明文を教えてほしいです。 1 2023/01/12 09:17
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- Visual Basic(VBA) A列B列C列 3 2023/04/26 18:11
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
始点、終点の二つの座標と半径...
-
Excel関数で指定範囲内に有るか...
-
座標の回転方向について
-
コントロールのドラック&ドロップ
-
C言語 配列で座標
-
PPTのVBA スライド右下端の座...
-
座標
-
ワード上Shapeの位置情報を統一...
-
位置座標からx軸となす角度(ラ...
-
C#でxy座標グラフを描きたい。
-
回転する矩形同士の当たり判定...
-
オートシェイプ円弧の中心点、...
-
【エクセル・マクロ】座標を回...
-
GLで座標を変えて回転させたい
-
図形が重なりあっているかどうか
-
atan2関数 ベクトル計算・・・
-
ゲームプログラミングにおけるs...
-
回転する四角や円で当たり判定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
エクセルで回転する座標の出し方
-
エクセルである点からの距離で...
-
3次元空間上の2つの座標から...
-
閉図形の座標の配列が右回りか...
-
ダイアログ内コントロールの位...
-
始点、終点の二つの座標と半径...
-
座標を持った平面範囲に座標を...
-
空間上の二点を結ぶ直線上に任...
-
エクセルシート上のマウスポイ...
-
多角形の内部かどうか判定する方法
-
ワード上Shapeの位置情報を統一...
-
Excel VBA で自在に図形を変化...
-
OpenCvSharp4による画像判定解...
-
C言語 配列で座標
-
以下のプログラムは重心を求め...
-
シーケンサー(PLC?)で制...
-
交差する2線分の交点座標の求め方
-
VB6のPrinter.ScaleWidth に対...
おすすめ情報