Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


46386 / 76732 ←次へ | 前へ→

【35318】Re:困りました
発言  やっちん  - 06/2/26(日) 15:44 -

引用なし
パスワード
   1秒間隔で動くようにしてみました。
Timer_Startをスタートのボタンに登録して、
Timer_ENdをエンドのボタンに登録して動かしてみてください。

Option Explicit
Dim X(1 To 9) As Integer 'X座標
Dim Y(1 To 9) As Integer 'Y座標
Dim W(1 To 9) As Integer '幅
Dim H(1 To 9) As Integer '高さ
Dim MyTime As Date

Sub Timer_Start()
Dim i As Integer

For i = 1 To 9
  X(i) = ActiveSheet.Shapes("thing" & i).Left
  Y(i) = ActiveSheet.Shapes("thing" & i).Top
  W(i) = ActiveSheet.Shapes("thing" & i).Width
  H(i) = ActiveSheet.Shapes("thing" & i).Height

Next i
MyTime = Now() + TimeValue("00:00:01")
Application.OnTime MyTime, "check"
End Sub

Sub Timer_ENd()
On Error Resume Next
Application.OnTime MyTime, "check", , False

End Sub

Sub check()
Dim kasanari As Boolean
Dim j As Integer
Dim i As Integer
Dim Xx(1 To 3) As Integer 'X座標
Dim Yy(1 To 3) As Integer 'Y座標

For i = 1 To 3
  Xx(i) = ActiveSheet.Shapes("thing" & ((i - 1) * 3 + 1)).Left
  Yy(i) = ActiveSheet.Shapes("thing" & ((i - 1) * 3 + 1)).Top
Next i

'重なり方の判定


For j = 1 To 3
  kasanari = False
  If Xx(j) <> X((j - 1) * 3 + 1) Or Yy(j) <> Y((j - 1) * 3 + 1) Then
    X((j - 1) * 3 + 1) = Xx(j)
    Y((j - 1) * 3 + 1) = Yy(j)
    If Y(j * 3 - 2) < Y(j * 3 - 1) + H(j * 3 - 1) Then
     If Y(j * 3 - 2) + H(j * 3 - 2) > Y(j * 3 - 1) Then
      If X(j * 3 - 2) < X(j * 3 - 1) + W(j * 3 - 1) Then
       If X(j * 3 - 2) + W(j * 3 - 2) > X(j * 3 - 1) Then
        kasanari = True
       End If
      End If
     End If
    End If
    
    '重なっているとき
    
    If kasanari Then
      With ActiveSheet.Shapes("thing" & j * 3 - 2)
      .Top = Y(j * 3 - 1) + 1
      .Left = X(j * 3 - 1) + 1
      End With
    
    '重なっていないとき
    
    Else
      With ActiveSheet.Shapes("thing" & j * 3 - 2)
      .Top = Y(j * 3)
      .Left = X(j * 3)
      End With
    End If
  End If
Next j

MyTime = Now() + TimeValue("00:00:01")
Application.OnTime MyTime, "check"

End Sub

0 hits

【35281】貼り付けた画像ファイルを特定セルのみに移動させるには? たく 06/2/25(土) 12:28 質問
【35288】ここまでやってみました たく 06/2/25(土) 21:17 発言
【35297】Re:ここまでやってみました やっちん 06/2/25(土) 23:12 発言
【35305】Re:ここまでやってみました たく 06/2/26(日) 1:42 お礼
【35307】Re:ここまでやってみました やっちん 06/2/26(日) 2:36 発言
【35311】Re:ここまでやってみました たく 06/2/26(日) 10:41 お礼
【35315】困りました たく 06/2/26(日) 14:34 質問
【35316】Re:困りました やっちん 06/2/26(日) 15:14 発言
【35318】Re:困りました やっちん 06/2/26(日) 15:44 発言
【35320】ありがとうございます たく 06/2/26(日) 16:42 お礼

46386 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free