プロが教えるわが家の防犯対策術!

概要
エクセルマクロでアニメを作る方法を教えてください。


詳細
エクセルでアニメを作りたいと思います。
「エクセルでアニメ」とひとことで言ってもいろんなパターンがあると思います。
画像描画機能で作成した、基本的な画像を上下左右に動かすもの、とか
セルに文字列や記号を表示し、それを1セルずつ移動させてアニメーションさせるもの、とか
セルに色塗りをしておおざっぱなドット絵を描いてそれを少しづつ変化させる、とか。

今回は
「予めペイント機能などで描いた画像をシート状に複写して用意しておき、それらを順に切り替えて表示しては消し、表示しては消し、を繰り返す、パラパラ漫画形式のアニメをつくる」
とします。


ここに既にペイント機能で作成した画像が数枚用意されているとします。
画像の名称は
"Picture 1" "Picture 2" "Picture 3" (以下、必要な枚数ぶん、用意します)
これらがシート1、 もしくはアクティブシートに存在しております。
閲覧者に見えてしまってはよくないので、セルA1から遠く離れた位置に存在しているものとします。

これを"Picture 1"をシートの左上(セルで言えばA1の位置)に移動させて、
1/24秒間表示し、元の位置に戻す
次に"Picture 2"をシートの左上(セルで言えばA1の位置)に移動させて、
1/24秒間表示し、元の位置に戻す
(以下、画像の数だけ繰り返す)

というのをやりたいと思います。


エクセルマクロに関して調べたら次のマクロでイケそうです。

Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)

Sub macro1()
Dim time As Long
time = 42 ' time = 42 は、1/24秒間

'?1

Sleep time

'?2

End Sub


?1のところに
"Picture 1"をシートの左上(セルで言えばA1の位置)に移動させる

?2のところに
元の位置に戻す

のマクロプログラムを作って、あとは繰り返し行えばイケそうです
どうやったら出来るでしょうか?
教えてください。

(なお、複写(コピペ)を使わずに移動を使うのは複写(コピペ)を使うと
画像を指し示す"Picture 1"が変化してしまい、一回きりしかマクロが動かせなくなってしまうために割けるべきと考えました。
他に良いアイディアがありましたらご教授願います)

A 回答 (1件)

こんにちは



>?1のところに
>"Picture 1"をシートの左上(セルで言えばA1の位置)に移動させる
図形の.top, .left 属性の値を指定すれば良いです。
http://club-vba.tokyo/vba-zukei-idou/
https://learn.microsoft.com/ja-jp/office/vba/api …


>?2のところに
>元の位置に戻す
最初に移動する前に、元の位置を変数に記憶しておいて、その位置に改めて移動すれば良いです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
勉強いたします。

お礼日時:2023/02/07 19:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!