シェイプを移動させる : Excel(エクセル)

Excel VBAでオートシェイプを移動させるには、Left・Topプロパティを使います。

シェイプを指定するには、 Worksheets("シート名").Shapes("オートシェイプ名")で指定できます。
左右方向に移動させるには、 Worksheets("シート名").Shapes("オートシェイプ名").Left = 移動距離
上下方向に移動させるには、 Worksheets("シート名").Shapes("オートシェイプ名").Top = 移動距離

Excel Tipsメニューに戻る

スポンサーリンク






Excel実行画面

[開始]ボタンをクリックすると、風船の図形が左右に繰り返し移動します。
オートシェイプ移動ソフト

風船が右に移動した画像
[停止]ボタンをクリックすると止まります。
アニメーションソフト

スポンサーリンク


Excel VBA実行コード

Option Explicit

'Windowsが起動してからの経過時間 API
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private bend As Boolean

'mSecタイマー
Private Sub ExTimer(tim As Long)
    Dim st As Long
    
    '開始時間を取得
    st = GetTickCount
    DoEvents
    Do
        If GetTickCount - st >= tim Then
            '時間が経過した
            Exit Do
        End If
        DoEvents
    Loop
End Sub

'開始
Private Sub CommandButton1_Click()
    Dim x1 As Long
    Dim x2 As Long
    Dim x3 As Long

    bend = False
    '元の位置を取得
    x1 = Worksheets("Sheet1").Shapes("楕円 1").Left
    x2 = Worksheets("Sheet1").Shapes("フリーフォーム 3").Left
    x3 = Worksheets("Sheet1").Shapes("オートシェイプ 5").Left
    
    '停止ボタンが押されるまで繰り返す
    Do
        '右に移動
        Worksheets("Sheet1").Shapes("楕円 1").Left = x1 + 120
        Worksheets("Sheet1").Shapes("フリーフォーム 3").Left = x2 + 120
        Worksheets("Sheet1").Shapes("オートシェイプ 5").Left = x3 + 120
    
        ExTimer 500
        
        '元の位置に戻す
        Worksheets("Sheet1").Shapes("楕円 1").Left = x1
        Worksheets("Sheet1").Shapes("フリーフォーム 3").Left = x2
        Worksheets("Sheet1").Shapes("オートシェイプ 5").Left = x3
    
        ExTimer 500
    
    Loop Until bend = True
End Sub

'停止
Private Sub CommandButton2_Click()
    bend = True
End Sub

スポンサーリンク







Excel Tipsメニューに戻る

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved