プロが教えるわが家の防犯対策術!

いつもお世話になります。
下記のように選んだセルのデータを削除するマクロを「マクロの記録」で作成しました。

Sub Macro2()
'
' Macro2 Macro
'

'
Range("E5:R12").Select
ActiveWindow.SmallScroll Down:=6
Range("E5:R12,E14:R22").Select
Range("E14").Activate
ActiveWindow.SmallScroll Down:=12
Range("E5:R12,E14:R22,E24:R28").Select
Range("E24").Activate
ActiveWindow.SmallScroll Down:=6
Range("E5:R12,E14:R22,E24:R28,E30:R34").Select
Range("E30").Activate
Selection.ClearContents
End Sub

「Macro2」の実行ボタンを作り、シート名「1」~「31」の同じセルのデータをボタンをクリックして、一括で削除したいのですが、この記述をどのように変更したらよいのか、マクロを始めたばかりの初心者の私にご教授して頂けませんでしょうか?
「マクロの記録」で各シートを選び、セルを選んでdeleteして行く方法はありますが、今後のためにも記述の編集で出来る方法をお教え下さい。
よろしくお願いいたします。
当方、エクセル2010で作成していますが、エクセル2002の環境で使います。

A 回答 (1件)

次ぎのマクロを実行するとシート1とシート2の両シートのA1のデータがB1にコピーできます。

是を応用してください。
Dim sheetno As Integer
For sheetno = 1 To 2
Worksheets(sheetno).Select
Range("A1").Select
Selection.Copy
Range("B1").Select
ActiveSheet.Paste
Next
    • good
    • 1
この回答へのお礼

早速のご教授ありがとうございました。
マクロの記述を以下の様に変更し、無事成功しました。

Sub Macro2()
'
' Macro2 Macro
'

Dim sheetno As Integer
For sheetno = 1 To 32
Worksheets(sheetno).Select'

Range("E5:R12").Select
ActiveWindow.SmallScroll Down:=6
Range("E5:R12,E14:R22").Select
Range("E14").Activate
ActiveWindow.SmallScroll Down:=12
Range("E5:R12,E14:R22,E24:R28").Select
Range("E24").Activate
ActiveWindow.SmallScroll Down:=6
Range("E5:R12,E14:R22,E24:R28,E30:R34").Select
Range("E30").Activate
Selection.ClearContents
Next
End Sub

しかし、何か理解していないのかと思いますが、
シートは「31」までなのに

For sheetno = 1 To 31

では、「30」までしか、実行されず、

For sheetno = 1 To 32

にするとシート 31まで実行されました。

何か勘違いしてるのでしょうか?

取り敢えず、うまくいきました。

ありがとうございました。

お礼日時:2012/06/26 21:28

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