[[20050806103938]] 『非保護セルのデータのみ一括で消去したいのですが』(初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『非保護セルのデータのみ一括で消去したいのですが』(初心者)

それぞれ異なったレイアウトのシートで、保護を掛けたセル以外のデータを消すにはどうしたらよいでしょうか?。

シート数が多いので個別にデータ消去を記録したマクロを作るのが大変なので困っています。


 ループ処理なのでデータが多いと時間が掛かると思います。
 セルが特定されているなら、自分でセルを指定したコードを書いた方が良いです。  

 Sub aa()
 Dim r As Range
 Dim ws As Worksheet

    For Each ws In Worksheets
        With ws
            .Unprotect

            For Each r In .Range("A1", .Cells.SpecialCells(xlCellTypeLastCell))
                If r.Locked = False Then r.ClearContents
            Next r

            .Protect
        End With
    Next ws

 End Sub

  (INA)

 >保護を掛けたセル以外のデータを消すにはどうしたらよいでしょうか?。 
Sub てすと()
On Error Resume Next
    Sheets("Sheet1").Cells.Value = ""
On Error GoTo 0
End Sub
勘違いでしたら、お許しをm(__)m
(SoulMan)


 あっ。 ループしなくてもできるんだ。

 でも、これで処理できる理由が分からない・・・(;-_-;)
 SoulManさんは、どうやってこの方法を見つけたのですか?
  (INA)

(INA)様 (SoulMan)様 ありがとうございますm(__)m

すっきり一発で削除できました。心から感謝いたします。

”エクセルの学校”の大ファンになりました。
(初心者)


 >SoulManさんは、どうやってこの方法を見つけたのですか?
 えっ(◎_◎;) ドッキ!!って普通にやってました。(^^;
 というかぁ、、保護されてるセルに値は代入出来ない訳でしてぇ????
 私的感覚には「やれるところだけでもやっといて!」みたいな感じでしょうか??
 説明になってない???( ̄□ ̄;)!!
ちなみに、、値の削除と限定されると、、
[[20050515204217]]『保護がかかっていないセルの値の削除』(ひろけん) 
こんなのになっちゃいますね。ご参考までに・・・・
(SoulMan)我流?


 WorkSheetオブジェクトに対してCellsがすべてのセルを
 返すから、ということでいいのでは?

 保護がかかっていればエラーになりますが、
 On Error Resume Nextで次に進めてますよね。

 ところでOn Error GoTo 0っている?
 (ramrun)

 あっ、親分、ナイスフォローありがとうございます。m(__)m
 >ところでOn Error GoTo 0っている?
 えっ、ちょっとはカッコ付けてみようかなぁ・・・なんて思っちゃたりなんかしてぇ、、、
 いやだなぁ、、突っ込まないでくださいよぉ、、、(^^;
 ではでは、、
(SoulMan)


 Rangeオブジェクトに対してループ処理しているような感じなのですね。
 新しい発見でした。m(_ _)m

  (INA)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.