電子書籍の厳選無料作品が豊富!

既存のマクロに別の命令文を追加する場合について質問です。

選択した範囲のオブジェクトを削除するマクロがあります。
下の命令文に
「シート2でも同じことをする(ただし選択範囲はC30からG33)」
を追加する場合には、どのように書けばいいのでしょうか?




Sheets("シート1").Select

Range("A65:E365").Select
Dim shp As Shape
Dim rng_shp As Range

'セルが選択されていないときは終了
If TypeName(Selection) <> "Range" Then Exit Sub

'アクティブシートのすべての図形にループ処理
For Each shp In ActiveSheet.Shapes

'図形の配置されているセル範囲をオブジェクト変数にセット
Set rng_shp = Range(shp.TopLeftCell, shp.BottomRightCell)

'図形の配置されているセル範囲と
'選択されているセル範囲が重なっていれば図形を削除
If Not Intersect(rng_shp, Selection) Is Nothing Then
shp.Delete

End If

Next
Sheets("シート0").Select
Range("A1").Select




同じものを上記命令文の下にコピーして選択シートと範囲を直すだけだと、
Dim shp As ShapeとDim rng_shp As Rangeがエラーになります。

どなたかご教示お願いします。

A 回答 (1件)

コピーの中から、エラーになった2行だけを取り除けば良いです。



これらは変数shpとmg_shpについての宣言文であり、初めて変数を使うところより前に一度だけ書くものなので、「重複して書いてある」という理由でエラーになったんです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!