
No.1ベストアンサー
- 回答日時:
こんばんは。
今、思いつくのは、以下のように、Rangeオブジェクトをとる方法ですね。
With ActiveSheet.Shapes(1)
Set shp = Range(.TopLeftCell, .BottomRightCell)
End With
これで、Rangeオブジェクトが取れますから、それを、Intersect を使って、二重ループでまわしたらいかがですか?あまり深く考えていないので、間違っているかもしれません。
簡単な例を考えてみました。
Sub CheckDoubleTest()
Dim ShpR1 As Range
Dim ShpR2 As Range
Dim i As Integer
Dim j As Integer
With ActiveSheet
For i = 1 To .Shapes.Count
Set ShpR1 = .Range(.Shapes(i).TopLeftCell, .Shapes(i).BottomRightCell)
For j = i + 1 To .Shapes.Count
If i <> j Then
Set ShpR2 = .Range(.Shapes(j).TopLeftCell, .Shapes(j).BottomRightCell)
If Not Intersect(ShpR1, ShpR2) Is Nothing Then
'処理
End If
End If
Next j
Next i
End With
Set ShpR1 = Nothing: Set ShpR2 = Nothing
End Sub
No.2
- 回答日時:
Left
.Top
.Height
.Width
で決まる長方形は、その中にシェイプが収まる四角形で、実際のシェイプの形とは、関係したものでは有りません。だからセルの場合はINTERSECTで判りますが、実際の図形の閉曲線輪郭が他の図形のそれと交わるか(共通点集合を持つかどうか)は、もう少し、細かいレベルのロジックやアルゴリズムによる、ビットをチェックする、アセンブラレベルのコーディングが要るのではないでしょうか。
(図形内を、色で塗りつぶしするロジックのような)
経験したような意見に書いてますが、体験したわけでなく、そういう道理だと思うわけです。
なるほど、よく分かりました。ありがとうございます。
重なりをチェックできるプロパティー値とかは、やっぱりないんですね。セルレベルの重なりチェックでできるかどうか検討してみます。INTERSECT知りませんでしたので助かりました。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelの任意セル上に図形がのっているかどうか?
Excel(エクセル)
-
エクセルVBA:データ端に画像があった場合の最終セル位置取得
Excel(エクセル)
-
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
-
4
エクセル関数で日付かどうかの確認?
Excel(エクセル)
-
5
【EXCEL VBA】オートシェイプをクリックした時にそのオートシェイプの名前を取得したい
Visual Basic(VBA)
-
6
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
7
エクセルで、オブジェクトの選択を禁止する方法。
Excel(エクセル)
-
8
Excelのシート上のShapeにイベントは設定できる?
Excel(エクセル)
-
9
[ EXCEL VBA ] 図形を読み込む順番を制御するには?
Visual Basic(VBA)
-
10
VBAのロジックでEXCEL上にShape図形があるかないかをチェック
Excel(エクセル)
-
11
エクセルマクロでシート内にある画像のみを選択する
Excel(エクセル)
-
12
VBA Shapes コピーと名前
Excel(エクセル)
-
13
EXCELの図形(テキストボックス)を固定したい
その他(Microsoft Office)
-
14
【エクセル】シート内の表をUserFormに画像として表示させる方法
Excel(エクセル)
-
15
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
16
VBAによる図形位置判定
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワポで曲がった両矢印の簡単...
-
エクセルでの図形の書き方
-
EXCELでも、WORD描画キャンバス...
-
写真を上下2枚ずつ均等に配置
-
オブジェクトをカウントする
-
【Word2000】丸付き数字と矢印...
-
ワードで作図を作るときに,点...
-
エクセルのコメントの引き出し...
-
図形の移動をカーソルキー(矢...
-
パワーポイント 接続ポイント解除
-
パワーポイントの表を左90度回...
-
パワーポイントで任意の文字に...
-
EXCEL VBAでオートシェイプの重...
-
オートシェイプで90度に折れ曲...
-
エクセルの図形の移動が保存で...
-
チェックボックスサイズ変更
-
【PowerPoint】塗り設定のコピ...
-
エクセルやワードにおける図の作成
-
パワーポイントで立体を作った...
-
たての長い線に細かく横に等間...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワポで曲がった両矢印の簡単...
-
エクセルやワードにおける図の作成
-
パワーポイントの表を左90度回...
-
エクセルのコメントの引き出し...
-
【PowerPoint】塗り設定のコピ...
-
パワーポイントで立体を作った...
-
エクセルでの図形の書き方
-
写真を上下2枚ずつ均等に配置
-
Excel(エクセル) 2010で画像の...
-
線の長さ
-
PDFに挿入した図形を丸ごとコピ...
-
パワーポイント 接続ポイント解除
-
ワードで作図を作るときに,点...
-
EXCEL VBAでオートシェイプの重...
-
EXCELでも、WORD描画キャンバス...
-
【大至急】パワーポイントで矢印
-
Excelで挿入した矢印を平行に揃...
-
エキセルで2重マルを作るには?
-
オブジェクトをカウントする
-
Excel2007で文字の下線の色を変...
おすすめ情報