![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
指定範囲(I9:CW40)から図形(円・四角形)のクリアをするとエラーになってしまいます。終了をすればクリアはできるのですが。御教授願えませんでしようか?(尚四角形はセルの枠線上に貼り付けるようにしてあります。)
Sub 図形のクリア()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim myRng As Range
Dim sp As Variant
Set myRng = Range("I9:CW40")
For Each sp In ActiveSheet.Shapes
If Not Intersect(Range(sp.TopLeftCell, sp.BottomRightCell), myRng) Is Nothing Then
sp.Delete (ここで実行時1004のエラーになる。)
End If
Next
Set myRng = Nothing
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
No.1ベストアンサー
- 回答日時:
当然の結果だと思います
ForEachは Inに指定した コレクションが普遍であるとして動作します
削除を行いたいのであれば ShapesのCountプロパティを使ってループを組みます
dim n as integer, sp as Variant
for n = ActiveSheet.Shapes.Count to 1 step -1
set sp = ActiveSheet.Shapes(n)
if Not Intersect(Range(sp.TopLeftCell, sp.BottomRightCell),myRng) Is Nothing then
sp.Delete
end if
next
といった具合に Shapesコレクションの末尾から削除するようにしましょう
おしゃるとおりだと思います。無事に解決できました。
やはり勉強不足は否めませんし冷静に考えればそうなんですけどご指摘のように自分で考えて修正できるように少しずつでもスキルアップしていきたいと思います。
本当にありがとうございます。
No.2
- 回答日時:
当方xl2010ですが、特にエラーも無く実行できました。
一般にFor Eachを用いて削除すると、内部の管理番号?の振り直しのためか、消し損じが出ることがありますが、今回若干の試験では、消し損じも確認できませんでした。
エラー発生時のShapeを確認し、何か特異点が無いか確認してはいかがでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/11 08:33
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルマクロで指定範囲内の図形を削除
Excel(エクセル)
-
画像を削除したい(VBA)
Word(ワード)
-
オートシェイプの削除時のエラー回避法
Visual Basic(VBA)
-
-
4
Excel 条件によって入力禁止にする
Excel(エクセル)
-
5
VBA Shapes コピーと名前
Excel(エクセル)
-
6
やはり図形のクリアで実行時エラー1004
Visual Basic(VBA)
-
7
VBAのフォント変更(エクセルからoutlookのメール作成において)
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Debug Assertion Failed?
-
VBAでFormat がうまく使えない
-
VB5のEXEの起動時エラー
-
aspxが動作しない
-
NET USE コマンドでエ...
-
Access ADOで文字列を日付型へi...
-
C# HttpWebRequestのエラーにつ...
-
bcpadがうまく実行できないので...
-
Excel ファイルに保存すると実...
-
EXCEL VBA 文字色を変える
-
aspxをサーバーで表示すること...
-
VBAで印刷するとエラーになって...
-
EXCELを開くとエラーがでます。
-
POV-Ray についての質問です!
-
エラーコード 70 「書き込み...
-
たまにブルースクリーンが発生...
-
ACCESS VBAのOpenForm書き方
-
不明なソフトウェア例外(0xe06...
-
vbaでファイルを開くパス名に変...
-
Web.Config 構成ファイルのエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
Debug Assertion Failed?
-
NET USE コマンドでエ...
-
POV-Ray についての質問です!
-
Excel ファイルに保存すると実...
-
不明なソフトウェア例外(0xe06...
-
ホームページビルダーの”全体の...
-
シェルスクリプトの実行エラー...
-
vbaでファイルを開くパス名に変...
-
エラーコード 70 「書き込み...
-
図形のクリアで実行時の1004エ...
-
ACCESS VBAのOpenForm書き方
-
Web.Config 構成ファイルのエラー
-
Access ADOで文字列を日付型へi...
-
C# HttpWebRequestのエラーにつ...
-
LTspiceのTime Stepエラーについて
-
bcpadがうまく実行できないので...
-
VB5のEXEの起動時エラー
-
xmlドキュメントから別拡張子で...
-
VBAで印刷するとエラーになって...
おすすめ情報