【VBAでRPGをつくる!3】ワークシートに主人公を表示する

  • URLをコピーしました!
目次

【VBAでRPGをつくる!3】ワークシートに主人公を表示する

ワークシート上にプレイヤーや住人などのキャラクターを表示するには、あらかじめワークシート上の別の場所に作成しておいたドット絵を表示したい場所にコピー&ペーストします。使用するのは、RangeオブジェクトのCopyメソッドです。

ワークシートにキャラクターを表示する

ワークシート上にプレイヤーのドット絵(キャラクター)を表示するプログラムを作成します。まずはドット絵のオブジェクトを作成します。

Private Sub PatternSetup()

‘ドット絵のオブジェクトを作成
Set objPattern = Range(Cells(cHumanTop, 1), Cells(cHumanTop + 15, 16))

End Sub

VBA辞書】
Set:オブジェクト変数にオブジェクトを入れる時に使用。Setステートメントを使った=代入
(英単)組み合わせ、物を配置する

【プロシージャ・変数・定数名】
obj(object):モノ。ブック、シート、セルなど

ドット絵の範囲は、範囲の左上と右下の座標で指定します。

Private Sub WriteCharacter()

Dim lX As Long
Dim lY As Long

‘キャラクターの表示位置は変数で設定(IX:横軸、IY:縦軸)
lX = 97
lY = 81

‘貼り付け先を指定する
objPattern.Copy Range(Cells(lY, lX), Cells(lY + 15, lX + 15))

End Sub

VBA辞書】
Dim:Dimensionの略。変数に「どのような値だけが代入されるのを許すか」宣言するために使用します
(英単)物事の範囲・側面、次元

【プロシージャ・変数・定数名
write:書く
Character:登場人物、キャラクター
IX、IY:Long(長整数)型のX、Y座標

コピー元のドット絵は、Range型の変数に保存したものを使用し、Copyメソッドの引数に、貼り付け先を指定します。WriteCharacterマクロを実行すると、画面に主人公のドット絵が表示されます。

WriteCharacterマクロ実行結果

キャラクターのドット絵は、あらかじめシート上の1001行以降に作成したものです。

Copyメソッド以外の「コピペ」

Copyメソッドは、セル内のデータだけでなく、設定されている書式も含めてコピーします。しかし、コピペをする際に「書式を含めたすべて」より、「値のみ」使用する方が多いのではないでしょうか。「値のみ」であれば、次のように記載すればよいです。

複数セルの値だけをコピーするときは、次のようにValueプロパティを省略せずに指定する必要があります。また、コピー元と貼り付け先は、同じ大きさのセル範囲でなければなりません。

Sub 書式を含めたすべて()

Range(“A1”).Copy Range(“B2”)

End Sub
Sub 値のみ()

Range(“B2”) = Range(“A1”)

End Sub
Sub 複数セル値のみ()

Range(“A1:B3”).Value=Range(“C1:D3”).Value

End Sub

変数の型がわかるようにするルール

プログラムを書くとき、見やすいようにするなどの要求から、プログラムの記述にルールを設けることがあります。コーディングルールといいますが、変数名を記述する際にハンガリアン記法と呼ばれるものがあります。

ハンガリアン記法とは変数名の前に、データ型などの略称を3~4文字で付加するものですが、当サイトでは先頭に1文字だけデータ型(または定数)を記述することにします。

ルールなし
(例)
Const ScreenLeft As Long
Const ScreenRight As Long
Dim X As Long
Dim Y As Long
ハンガリアン記法
(例)
Const kLngScreenLeft As Long
Const kLngScreenRight As Long
Dim LngX As Long
Dim LngY As Long
※const は c でなく k にする
当サイトルール
(例)
Const cScreenLeft As Long
Const cScreenRight As Long
Dim lX As Long
Dim lY As Long

次回は表示した主人公を画面内で移動させてみます。自分が作ったキャラクターが動くと、うれしさ倍増です!

よかったらシェアしてね!
  • URLをコピーしました!
目次