- 締切済み
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迄のデータです。 マクロのレベルは初級レベルです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
>計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)
作成例: 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枚目のシートと言いたかったのでしょうか。 こういった本筋と全く関係ないところで皆さんのアドバイスが「動かない」のは,お互いの時間の無駄以外何モノでもありません。
補足
すいません。 シート名の説明が、あいまいでした。 シート名が、1~31迄と301と311の計33シート存在します。 このシート33シートのセル保護をしていないセルデータの一括削除でした。 シート名301と311も削除したいのですが、よろしくお願いします。