シェイプを移動させる : Excel
Excel VBAでオートシェイプを移動させるには、Left・Topプロパティを使います。
シェイプを指定するには、 Worksheets("シート名").Shapes("オートシェイプ名")で指定できます。
左右方向に移動させるには、 Worksheets("シート名").Shapes("オートシェイプ名").Left
= 移動距離
上下方向に移動させるには、 Worksheets("シート名").Shapes("オートシェイプ名").Top
= 移動距離
Homeに戻る >
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
Homeに戻る >
Excel オートシェイプのTipsへ
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します
Copyright (c) Excel-Excel ! All rights reserved