
オートシェイプの削除を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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルマクロで指定範囲内の図形を削除
Excel(エクセル)
-
Excel(VBA)
Excel(エクセル)
-
指定範囲内で図形等を削除する方法は?
その他(Microsoft Office)
-
-
4
エクセルVBA 画像を貼り付けるセル位置を指定する方法
Excel(エクセル)
-
5
エクセルの選択範囲以外を削除する方法
Excel(エクセル)
-
6
VBAで選択範囲外の図形(オブジェクト)の消去は出来ますでしょうか? 印刷範囲外のオブジェクトを消し
Visual Basic(VBA)
-
7
特定の名前のオートシェイプの有無を知りたい(エクセルVBA)
Excel(エクセル)
-
8
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
9
エクセルマクロで、別のブックが開いているかを判定したいのですが。
その他(Microsoft Office)
-
10
VBA Shapes コピーと名前
Excel(エクセル)
-
11
最初の1回のみにボタンクリックでマクロ実行する
Visual Basic(VBA)
-
12
Excelのセル内にある図形を削除したいのです。
Visual Basic(VBA)
-
13
VBAで特定のセルに画像があれば削除、なければ貼り付けを行いたい
Excel(エクセル)
-
14
VBA 別ブックからコピペしたいのですが、軽くしたいです
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スピンボタンのコピー
-
セルに入力したファイル名を参...
-
Excelで数値→文字列変換で指数...
-
日付が1年以内になると他のセル...
-
Excelの関数について、特定の文...
-
Excelで行ごとコピー、同じ行を...
-
テキストボックス内の文字のふ...
-
エクセルでグラフタイトルが折...
-
たくさん作った同じ設定のグラ...
-
エクセルにおける、グラフの指...
-
エクセル 指定した文字列を含...
-
エクセル
-
エクセル 入力中に表示されな...
-
塗りつぶしの色をコピーするには
-
負のデータが含まれている場合...
-
~エクセル~円グラフのみを抽...
-
C+vのvは英語で何の頭文字...
-
WORDのグレー括弧って?
-
Wordでレポートを作っています...
-
エクセルグラフの一括設定。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スピンボタンのコピー
-
エクセルVBAを使いセルを指...
-
エクセルで全部の数字を3倍したい
-
HYPERLINKのリンク先のセル範囲...
-
エクセル VBA 特定の範囲内に一...
-
ワードからエクセルへのハイパ...
-
少数点の表示形式について
-
エクセルでの先頭文字について
-
データベース関数のCriteria(...
-
エクセルについて、a1からa10の...
-
if関数の連続を単純化するには...
-
範囲内を絶対セルにする方法
-
Excelで指定した範囲内に値を一...
-
VBAからIEを操作する時のウィ...
-
エクセル VBA オフセットさせ...
-
エクセル 同一セル内の特定文...
-
& と "" の使い方
-
ExcelVBAで変数を用いた範囲指...
-
エクセルVBA: 別のセルからの...
-
セルに入力したファイル名を参...
おすすめ情報