
指定範囲(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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
VBAで印刷するとエラーになって...
-
POV-Ray についての質問です!
-
pythonをjupiter notebookからm...
-
SDHCカードの初期不良を調べ方...
-
シェルスクリプトの実行エラー...
-
NET USE コマンドでエ...
-
VB5のEXEの起動時エラー
-
不明なソフトウェア例外(0xe06...
-
Eclipseでのエラー検出の機能に...
-
Excel ファイルに保存すると実...
-
Googleドライブにインターネッ...
-
jw cadの名前をつけて保存・・...
-
ショートカットファイルが開け...
-
使えない!!!!
-
更新日時等の表示がおかしい
-
C:\\Users\\All Users がエク...
-
Wordのデータが毎回破損してしまう
-
All Usersとは何のことでしょう...
-
Thunderbirdのプロファイルが読...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
Web.Config 構成ファイルのエラー
-
シェルスクリプトの実行エラー...
-
ホームページビルダーの”全体の...
-
Debug Assertion Failed?
-
NET USE コマンドでエ...
-
不明なソフトウェア例外(0xe06...
-
C# HttpWebRequestのエラーにつ...
-
VBAで印刷するとエラーになって...
-
W3CのCSS検証エラーについて
-
Excel ファイルに保存すると実...
-
bcpadがうまく実行できないので...
-
LTspiceのTime Stepエラーについて
-
実行時エラー'1004': アプリケ...
-
FileUploadを利用しての画像保存
-
ホームページ転送中に「アクセ...
-
Access ADOで文字列を日付型へi...
-
aspxをサーバーで表示すること...
-
vbaでファイルを開くパス名に変...
-
POV-Ray についての質問です!
おすすめ情報