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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ExcelVBAで自動調整できますか? 3 2023/08/25 22:59
- Excel(エクセル) excelのオートシェイプを使って 1 2023/01/03 16:54
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- 画像編集・動画編集・音楽編集 medibang での文字の整列の仕方 1 2023/06/02 06:38
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Excel(エクセル) テキストの背後にあるオブジェクトとは 3 2023/01/03 20:22
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) エクセルでフィルタ後の列の重複を回避したい 6 2022/10/13 12:50
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
Excel(VBA)
Excel(エクセル)
-
[ EXCEL VBA ] 図形を読み込む順番を制御するには?
Visual Basic(VBA)
-
VBA Shapes コピーと名前
Excel(エクセル)
-
-
4
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
5
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
6
マウスで選択した図形のみVBAで移動したい。
Visual Basic(VBA)
-
7
図形が重なりあっているかどうか
C言語・C++・C#
-
8
EXECLマクロでshapeがグルーフ゜化されてるかどうかを調べる方法は?
Visual Basic(VBA)
-
9
指定範囲内のオートシェイプを数えるには?
Excel(エクセル)
-
10
マクロを実行すると画像がズレてしまいます
その他(Microsoft Office)
-
11
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
12
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
13
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
14
VBA Shapesの座標からセル位置取得について教えてください
Visual Basic(VBA)
-
15
コードでオブジェクトを最前面に
Visual Basic(VBA)
-
16
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
17
特定の名前のオートシェイプの有無を知りたい(エクセルVBA)
Excel(エクセル)
-
18
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
19
Excelのシート上のShapeにイベントは設定できる?
Excel(エクセル)
-
20
最も近い数値のあるセルを探す
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワポで曲がった両矢印の簡単...
-
Excelファイルのサイズがなぜか...
-
ワードで作図を作るときに,点...
-
パワーポイントの表を左90度回...
-
オートシェイプで90度に折れ曲...
-
エクセルやワードにおける図の作成
-
“ここにコピー”が一発で出ません。
-
エクセルのコメントの引き出し...
-
EXCELでも、WORD描画キャンバス...
-
PDFに挿入した図形を丸ごとコピ...
-
パワーポイントで立体を作った...
-
「ワード」の「ハイフン」を縦...
-
Wordのファイルを開くと、開い...
-
パワーポイントで作図した図を...
-
タイムカードの氏名所属などプ...
-
MS-Word段落番号とそのあとの文...
-
パワーポイントの縦横どうやっ...
-
Excel 1ページに印刷される行数...
-
Power Pointでベクトル表記や筆...
-
封筒における漢字の「11」の書き方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワポで曲がった両矢印の簡単...
-
パワーポイントの表を左90度回...
-
エクセルやワードにおける図の作成
-
エクセルでの図形の書き方
-
エクセルのコメントの引き出し...
-
写真を上下2枚ずつ均等に配置
-
EXCELでも、WORD描画キャンバス...
-
パワーポイントで立体を作った...
-
エキセルで2重マルを作るには?
-
線の長さ
-
Excel(エクセル) 2010で画像の...
-
PDFに挿入した図形を丸ごとコピ...
-
Excelで挿入した矢印を平行に揃...
-
ワードで作図を作るときに,点...
-
【PowerPoint】塗り設定のコピ...
-
“ここにコピー”が一発で出ません。
-
Excelファイルのサイズがなぜか...
-
オブジェクトをカウントする
-
EXCEL VBAでオートシェイプの重...
-
オートシェイプで90度に折れ曲...
おすすめ情報