何度も質問させて頂いてます。すみません、
下記のプログラムはこの場で教えて頂いたプログラムで、
実行すると●の後を▲や■が追いかける動きをします。
下記のプログラムをある程度使用して
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)
-
3次元空間上の2つの座標から...
-
マインクラフト(pc版)で座標...
-
始点、終点の二つの座標と半径...
-
エクセルである点からの距離で...
-
以下のプログラムは重心を求め...
-
閉図形の座標の配列が右回りか...
-
ダイアログ内コントロールの位...
-
OpenGLの線の太さ
-
運動のプログラムをおしえてく...
-
エクセルで回転する座標の出し方
-
オートシェイプ円弧の中心点、...
-
Fortranで直交座標から極座標変...
-
Excel VBAでマウス移動&ダブル...
-
緊急 ベーシックで国旗の作り方...
-
Excel VBA で自在に図形を変化...
-
GLで座標を変えて回転させたい
-
ワード上Shapeの位置情報を統一...
-
四角形の当たり判定についての...
-
C言語で制作するピラミッドアー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
エクセルである点からの距離で...
-
エクセルで回転する座標の出し方
-
3次元空間上の2つの座標から...
-
始点、終点の二つの座標と半径...
-
c言語でキーボードから2点の座...
-
閉図形の座標の配列が右回りか...
-
以下のプログラムは重心を求め...
-
交差する2線分の交点座標の求め方
-
y=x^2の座標をプロットするプロ...
-
ダイアログ内コントロールの位...
-
シーケンサー(PLC?)で制...
-
ガウシアンフィルタのCプログラム
-
多角形の内部かどうか判定する方法
-
直線上にある点の座標の求め方
-
エクセルシート上のマウスポイ...
-
OpenCvSharp4による画像判定解...
-
C言語 配列で座標
-
ピクチャボックスの座標取得
おすすめ情報