[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロでセルの色を消すには』(うーろん)
エクセルで、下のような勤務表を作りました。
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.