![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
何度も質問させて頂いてます。すみません、
下記のプログラムはこの場で教えて頂いたプログラムで、
実行すると●の後を▲や■が追いかける動きをします。
下記のプログラムをある程度使用して
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
![「Excel VBA ・・・教えてください」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/6/772377_5497d22170097/M.jpg)
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ランキング
-
マインクラフト(pc版)で座標...
-
グラフの交点の求め方(Excel)
-
直線上にある点の座標の求め方
-
エクセルシート上のマウスポイ...
-
3次元空間における平行回転移動...
-
エクセルである点からの距離で...
-
iPhoneの設定について
-
atan2関数 ベクトル計算・・・
-
始点、終点の二つの座標と半径...
-
対数表示のグラフを書くには
-
アナログ時計の短針(時間用針)...
-
ブロック図を作成するソフト
-
コントロールのドラック&ドロップ
-
matlab-図形表示
-
TSP問題
-
EMFファイルを作るとき、座標上...
-
y=x^2の座標をプロットするプロ...
-
自分達が生きてる世界は4次元座...
-
任意軸回転を、XYZ軸回転の...
-
最小二乗平面
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
エクセルである点からの距離で...
-
エクセルで回転する座標の出し方
-
3次元空間上の2つの座標から...
-
始点、終点の二つの座標と半径...
-
c言語でキーボードから2点の座...
-
閉図形の座標の配列が右回りか...
-
以下のプログラムは重心を求め...
-
交差する2線分の交点座標の求め方
-
y=x^2の座標をプロットするプロ...
-
ダイアログ内コントロールの位...
-
シーケンサー(PLC?)で制...
-
ガウシアンフィルタのCプログラム
-
多角形の内部かどうか判定する方法
-
直線上にある点の座標の求め方
-
エクセルシート上のマウスポイ...
-
OpenCvSharp4による画像判定解...
-
C言語 配列で座標
-
ピクチャボックスの座標取得
おすすめ情報