オートシェイプの削除をVBAでしたいのですが
' セル範囲の座標取得
With Range("AR47:CI56")
lngTop = .Top
lngLeft = .Left
lngBottom = .Top + .Height
lngRight = .Left + .Width
End With
' アクティブシートの図形列挙
For Each objShape In ActiveSheet.DrawingObjects
' 範囲内にあるかチェック
With objShape
If lngTop <= .Top And lngLeft <= .Left And _
lngBottom >= .Top + .Height And lngRight >= .Left + .Width Then
' 範囲内にあれば削除
.Delete
End If
End With
Next
現在のマクロだと指定セル範囲の中に全部入っているものしか削除されません。
これを、指定セル内に一部でも入っていたら削除
にしたいです。
ご教授お願いします。
No.2ベストアンサー
- 回答日時:
こんばんは!
一例です。
Sub Sample1()
Dim mySp As Shape, myRng As Range
Set myRng = Range("AR47:CI56")
For Each mySp In ActiveSheet.Shapes
If Not Intersect(Range(mySp.TopLeftCell, mySp.BottomRightCell), myRng) Is Nothing Then
mySp.Delete
End If
Next mySp
End Sub
こんな感じではどうでしょうか?
※ かなり前に他の方が回答されていたのをそのまま使わせていただきました。m(_ _)m
No.1
- 回答日時:
こんにちは
例えばX軸について、セル範囲の座標ををX1,X2、図形の座標をx1,x2とした場合
1)一部重なっている場合
X1 < x1 < X2 または X1 < x2 < X2
2)包含している場合
x1 < X1 < X2 < x2 (逆の包含は1)で検出可能)
について調べれば良いので、これをX,Y方向の両方についてチェックすれば良いのではないでしょうか?
※ 2)のチェックの代わりに、Xとxを入れ替えて、1)の方法でチェックするのでも検出できるはずと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- その他(Microsoft Office) エクセルのマクロでスライサー教えてください。 1 2022/09/28 16:40
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Visual Basic(VBA) QRコード作成マクロについて 3 2022/11/26 16:55
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA: 別のセルからの...
-
エクセルVBAを使いセルを指...
-
HYPERLINKのリンク先のセル範囲...
-
ワードからエクセルへのハイパ...
-
エクセルで最後に入力したセル...
-
IF関数について
-
エクセルVBA 結構初歩的なこと...
-
条件付き書式
-
エクセル VBA オフセットさせ...
-
Excel関数 - 文字列のなかに6ケ...
-
【エクセル2016】行数を指定し...
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
-
Excelで行ごとコピー、同じ行を...
-
エクセルでグラフタイトルが折...
-
エクセルにおける、グラフの指...
-
塗りつぶしの色をコピーするには
-
エクセル
-
Excelの関数について、特定の文...
-
EXCEL・複数ある円グラフの円の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スピンボタンのコピー
-
エクセルの数式で教えてください。
-
エクセルVBAを使いセルを指...
-
HYPERLINKのリンク先のセル範囲...
-
エクセルVBA: 別のセルからの...
-
エクセルでの先頭文字について
-
エクセル VBA 特定の範囲内に一...
-
データベース関数のCriteria(...
-
セルに入力したファイル名を参...
-
ワードからエクセルへのハイパ...
-
エクセルで全部の数字を3倍したい
-
VBAからIEを操作する時のウィ...
-
countif関数で離れた場所を検索...
-
エクセルで最後に入力したセル...
-
【頭の良い人へ】同セル内の文...
-
EXCEL2002で、「セルの範囲指定...
-
エクセルで作成したデータシー...
-
Excelのマクロを使わず、数式内...
-
Excel関数 - 文字列のなかに6ケ...
-
エクセル 同一セル内の特定文...
おすすめ情報