[[20040924094056]] 『マクロでセルの色を消すには』(うーろん) ページの最後に飛ぶ

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

 

『マクロでセルの色を消すには』(うーろん)

 エクセルで、下のような勤務表を作りました。

 A    B  C  D     E     F    G   H

 西暦  日  曜日 出勤時間 退社時間 休憩時間 残業時間 チェック
 

  2004/8 1    
 2004/8 2  月   8:30  17:15   1:00  0:00   レ

 祝日や公休日は区別するために色をつけてあります。
 チェックは、入力の確認のためにフォームで作ったチェックボックスで作ってあります。
 毎月末に、印刷してから手作業で消していたのですが、面倒なのでマクロで一括削除
 できるようにしました。
 でも消えるのは日付や曜日、時間だけなので、祝日や公休日につけた色と、チェックを
 マクロで消せれば、と思うのですが方法がよくわかりません。
 ご存知の方、教えて下さい。お願いします。


 マクロの記録でできませんか?

  (INA)

 衝突しました。
 Clear メソッドを使えば消す事は出来ますが、書式設定も標準になってしまいます。
自動記録を使って塗りつぶしなしにする動作を記録してみては如何でしょうか?
(ケン)

 チェックボックスはマクロの記録で、一度セレクトすれば出来ましたよ。
    ActiveSheet.Shapes("Check Box 1").Select
    With Selection
        .Value = xlOff
    End With
 (川野鮎太郎)

 INA様、ケン様、川野様、アドバイスありがとうございます。
 実はマクロ超初心者で、一括削除も他の人が作ったものを見よう見真似で
 作ったものなのです。
 ケン様のご指摘どおり、Clearを使っているので書式や計算式もすべて消えて
 いるのに、色は消えません。
 それから、川野様のアドバイスを試したのですが、チェックは1つだけ消えました。
 ということは、チェックボックスが30個あったら、

     ActiveSheet.Shapes("Check Box 1").Select

 を変えないと全部消えないのですよね?
 差し支えなかったら、川野様のアドバイスの説明をお願いできますか?
 あつかましいお願いで申し訳ありません(うーろん)

 複数選択する場合は、
     ActiveSheet.Shapes.Range(Array("Check Box 1", _
        "Check Box 2", "Check Box 3", _
        "Check Box 4", "Check Box 5", _
        "Check Box 6", "Check Box 7", _
        "Check Box 8", "Check Box 9", _
        "Check Box 10")).Select
    With Selection
        .Value = xlOff
    End With
 として増やすか、 For Nextで指定回数実行させてはどうでしょう。

 Dim i As Integer
 For i = 1 To 10
    ActiveSheet.Shapes("Check Box " & i).Select
    With Selection
        .Value = xlOff
    End With
    Next
 End Sub
 ※処理としては、最初のほうが早いと思います。
 (川野鮎太郎)


 川野様、丁寧な説明をありがとうございます。
 検証しようとしたところ、急な業務で週明けに持ち越しです。
 月曜には必ずやってみますので、見捨てないで下さいね。
 せっかく教えていただいたのに残念です。(うーろん)

コメント返信:

[ 一覧(最新更新順) ]


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