Excel VBA質問箱 IV

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

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


44999 / 76732 ←次へ | 前へ→

【36740】Re:複数の長方形における干渉をチェック...
発言  ハト  - 06/4/11(火) 17:05 -

引用なし
パスワード
   確かにクイズですね。

ご参考までに

>ハト さん、みなさん。
>こんにちは。
>
>どうも、こういうクイズみたいな構造は苦手です。
>こたつねこさんが回答されてるみたいですが、一応。
>下記のコードでどうでしょう。速度は考慮してませんし、
>合ってるのかわからないから、エラー処理もしてません。
>間違っているような気もして恥ずかしいのですが。
>
>Sub test2()
>
>  Dim rectA(1 To 4) As Double, rectB(1 To 4) As Double
>  Dim i As Integer, j As Integer
>  
>  For i = 17 To 66
ここは以下の方がいいですね
66行目が最後ですので次の比較対象がありません

  For i = 17 To 65

>  
>    'rectA、rectBを四角形とし、それぞれの上下左右の座標値を格納
>    
>    rectA(1) = Range("F" & i) + Range("I" & i) / 2 '右
>    rectA(2) = Range("F" & i) - Range("I" & i) / 2 '左
>    rectA(3) = Range("G" & i) + Range("J" & i) / 2 '上
>    rectA(4) = Range("G" & i) - Range("J" & i) / 2 '下
>  
>
>    For j = i + 1 To 66
>      rectB(1) = Range("F" & j) + Range("I" & i) / 2 '右
>      rectB(2) = Range("F" & j) - Range("I" & i) / 2 '左
>      rectB(3) = Range("G" & j) + Range("J" & i) / 2 '上
>      rectB(4) = Range("G" & j) - Range("J" & i) / 2 '下
>    
>      'rectAに対するrectBの位置を検査
>      'きれいなコードではないけれど、If文でひとつずつ精査していくこととする。
>      'Bの上がAの下よりも下にあるかBの下がAの上よりも上にあれば重ならない。
>      If rectB(3) <= rectA(4) Or rectB(4) >= rectA(3) Then
比較に=がありますが、このケースは線が重なります。
線が重なるのはOK?

>      Else
>        If rectB(2) >= rectA(1) Or rectB(1) <= rectA(2) Then
>        Else
>          MsgBox ("交差します")
>          Exit Sub
このケースだと
   Exit Sub
ではありません。プログラムが終了してしまいます
For文の場合は
   Exit For
です
もっともこの場合は後続の処理がないので省略可能です

>        End If
>      End If
>      
>    Next j
>  Next i
>  
>End Sub

3 hits

【36725】複数の長方形における干渉をチェックするマクロについて しとうと 06/4/10(月) 22:55 質問
【36728】Re:複数の長方形における干渉をチェックす... ちくたく 06/4/11(火) 10:22 発言
【36729】Re:複数の長方形における干渉をチェックす... しろうと 06/4/11(火) 10:51 発言
【36731】Re:複数の長方形における干渉をチェック... わいわい 06/4/11(火) 11:33 発言
【36733】Re:複数の長方形における干渉をチェック... ちくたく 06/4/11(火) 11:57 発言
【36738】Re:複数の長方形における干渉をチェック... ハト 06/4/11(火) 16:01 発言
【36739】Re:複数の長方形における干渉をチェック... ちくたく 06/4/11(火) 16:31 発言
【36740】Re:複数の長方形における干渉をチェック... ハト 06/4/11(火) 17:05 発言
【36747】Re:複数の長方形における干渉をチェック... ハト 06/4/12(水) 8:09 発言
【36741】Re:複数の長方形における干渉をチェック... こたつねこ 06/4/11(火) 17:41 発言
【36742】Re:複数の長方形における干渉をチェック... ハト 06/4/11(火) 18:06 発言
【36744】Re:複数の長方形における干渉をチェック... こたつねこ 06/4/11(火) 18:30 発言
【36736】Re:複数の長方形における干渉をチェックす... こたつねこ 06/4/11(火) 15:13 回答
【36745】Re:複数の長方形における干渉をチェックす... ichinose 06/4/11(火) 21:42 発言
【36746】Re:複数の長方形における干渉をチェックす... 平塚在住 06/4/11(火) 22:37 回答

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