プロが教える店舗&オフィスのセキュリティ対策術

マクロの質問ですが、複数有るシートの中のSheet1~Sheet54のセルC14:E14,E12,C16:E46
だけ消したいのですが、どう書けばよろしいですか、シート名Sheetから、始まる物と別に
日本語のシート名の物がありますが 
よろしくお願いします。

A 回答 (5件)

方法はいつくもありますが、、、



'-----------------------------------------
Sub Test()
 Dim i As Integer
 For i = 1 To Sheets.Count
   If Sheets(i).Name Like "Sheet*" Then
     Sheets(i).Range("C14:E14,E12,C16:E46").ClearContents
   End If
 Next i
End Sub
'----------------------------------------


また、Sheetを検出する部分は次のように
シート名の左から5桁が、"Sheet”だったらというふうにもかけます

  If Left(Sheets(i).Name, 5) = "Sheet" Then

以上です。
 
    • good
    • 0
この回答へのお礼

なるほど 文字の桁数での考えもあるのですね。
考えもつきませんでした。

教えていただいた構文で 無事に解決しました。
ありがとうございました。

お礼日時:2010/06/23 15:37

ANo.4を書いたのですが、ANo.3と内容がちょっとかぶっちゃいました。



誤変換の訂正です。
>個別に各方法
→個別に書く方法

重ね重ねすみません。
    • good
    • 0
この回答へのお礼

何度もありがとうございました。
皆さまのおかげで解決しました。
感謝してます。

お礼日時:2010/06/23 15:28

内容を確認させてください。



> セルC14:E14,E12,C16:E46だけ消したい

とのことですが、セルの削除ではなく、値の削除だけでしょうか?
書式設定やコメントはないでしょうか?


>複数有るシートの中のSheet1~Sheet54
とのことなので、ワークシートオブジェクトと範囲の指定をして、
CleaContentsすればいいのでしょう。
が、特定できるのはSheetObjectがSheet1~Sheet54で
シート名(.Name)やシート並び順(.Index)には、ルールはないと読めたのですが、違いますか?


ちなみに、下のループだと、Index順になってしまうので…。
Sheet1~Sheet54を個別に各方法しかないかも。

Dim All As Object, S As Object
Set All = Sheets
For Each S In All
(省略)
Next S

ちゃんとした回答になってなくてすみません。参考まで。
    • good
    • 0
この回答へのお礼

色々考えていただき
ありがとうございます。 皆さんのおかげで、解決できました。
ありがとう 感謝です。

お礼日時:2010/06/23 15:35

シートを順番に見て行って、シート名が「Sheet1」と「Sheet54」に挟まれたシート(Sheet1とSheet54も含む)の指定したセル範囲をクリアします。


Sheet1~Sheet54の間のシートはシート名が何であろうと対象にします。

Sub Sample()
  Dim ws As Object
  Dim nFlag As Integer
  
  nFlag = 0
  For Each ws In Sheets
    If ws.Name = "Sheet1" Then nFlag = 1
    If nFlag = 1 Then ws.Range("C14:E14,E12,C16:E46").ClearContents
    If ws.Name = "Sheet54" Then Exit For
  Next
End Sub
    • good
    • 0
この回答へのお礼

シートを挟む考え方もあるのですね。
参考になりました。
皆さんのおかげで、無事解決出来ました。
ありがとうございます。

お礼日時:2010/06/23 15:31

Sub Sheet_DelCell()



For Each sheet_name In Worksheets

MsgBox sheet_name.Name
sheet_name.Activate

Range("C14").ClearContents
Range("E14").ClearContents
Range("E12").ClearContents
Range("C16").ClearContents
Range("E46").ClearContents

Next
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
皆さんのおかげで、 解決しました。 スッキリです!。

お礼日時:2010/06/23 15:33

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