• 締切済み

Excel 2000にて特定のシート(シート名 1~30)セル保護をし

Excel 2000にて特定のシート(シート名 1~30)セル保護をしていないデータ(結合セルを含む)を一括削除を行いたいのですが、サイトで見つけた物を使用してみたのですが、うまくいきませんでした。 よろしくお願いします。 Sub test2() ? Dim c As Range ? With ActiveSheet ??? .Unprotect ??? For Each c In .UsedRange ????? If Not (c.Locked) Then c.MergeArea.ClearContents ??? Next ??? .Protect UserInterfaceOnly:=True ? End With End Sub シートは40枚程あるのですが、削除したいのはシート1~30迄のデータです。 マクロのレベルは初級レベルです。 よろしくお願いします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>計33シート存在します。 >このシート33シートのセル保護をしていないセルデータの一括削除でした 今度こそホントですね。 作成例: sub macro2()  dim i  dim c as range  for i = 1 to 33   with worksheets(i)    for each c in .usedrange     if c <> "" and not(c.locked) then c.mergearea.clearcontents    next   end with  next i end sub 作成例: sub macro3()  dim w as worksheet  dim c as range  for each w in worksheets   for each c in w.usedrange    if c <> "" and not(c.locked) then c.mergearea.clearcontents   next  next end sub

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

作成例: sub macro1()  dim i  dim c as range  for i=1 to 30   with worksheets(format(i, "@"))    for each c in .usedrange     if c <> "" and not(c.locked) then c.mergearea.clearcontents    next   end with  next i end sub #保護されたセルを触らなければ,シートの保護を解除する必要はありませんね。 ところで >シート名 1~30 >シート1~30迄のデータです 正しいシート名は一体どちらですか? それともシート名は全く更に別物で,1枚目から30枚目のシートと言いたかったのでしょうか。 こういった本筋と全く関係ないところで皆さんのアドバイスが「動かない」のは,お互いの時間の無駄以外何モノでもありません。

sutomo
質問者

補足

すいません。 シート名の説明が、あいまいでした。 シート名が、1~31迄と301と311の計33シート存在します。 このシート33シートのセル保護をしていないセルデータの一括削除でした。 シート名301と311も削除したいのですが、よろしくお願いします。

関連するQ&A

専門家に質問してみよう