Excel VBA質問箱 IV

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

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


46402 / 76735 ←次へ | 前へ→

【35305】Re:ここまでやってみました
お礼  たく  - 06/2/26(日) 1:42 -

引用なし
パスワード
   ▼やっちん さん:ありがとうございます。そうですね。
VBAはドラッグしたときにイベントは発生しませんよね。
判定ボタンを作っていちいち押すのは面倒です。
何も考えずに作ってしまいました。
アドバイスあったら、お願いします。

少し変えました。


Sub check()

'3つのオブジェクトの位置と大きさを求める

Dim X(1 To 3) As Integer 'X座標
Dim Y(1 To 3) As Integer 'Y座標
Dim W(1 To 3) As Integer '幅
Dim H(1 To 3) As Integer '高さ

Dim i As Integer
Dim kasanari As Boolean

For i = 1 To 3
  
  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

'重なり方の判定

If Y(1) < Y(2) + H(2) Then
 If Y(1) + H(1) > Y(2) Then        ← + H(1)はいらない?
  If X(1) < X(2) + W(2) Then
   If X(1) + W(1) > X(2) Then      ← + W(1)はいらない?
    kasanari = True
   End If
  End If
 End If
End If

'重なっているとき

If kasanari Then
  With ActiveSheet.Shapes("thing1")
  .Top = Y(2)              ← .Top = Y(2) + 1 に変更
  .Left = X(2)              ← .Left = X(2) + 1 に変更

  End With

'重なっていないとき

Else
  With ActiveSheet.Shapes("thing1")
  .Top = Y(3)
  .Left = X(3)
  End With
End If

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 お礼

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