[[20040712130032]] 『土、日の場合その行を網掛けにしたいのです』(ありんこ) >>BOT

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

 

『土、日の場合その行を網掛けにしたいのです』(ありんこ)

[条件付書式]

たびたびすみません!!教えて下さい
郵便表があって日付、曜日が入っています。
まず、日付を入れたら隣のセルにそれに対応する曜日をいれさらに
その曜日が土、日の場合土日の行を網掛けにしたいのです。

 日	曜日	合計	営業推進	パートナー	埼玉
 8月1日	日	0	0	0	0
 8月2日	月	#REF!	#REF!	#REF!	#REF!
 8月3日	火	0			
 8月4日	水	0			

というようになっていて、日曜日の場合は合計から埼玉の行を
すべて網掛けしたいのです。
書式のコピー貼り付け等ではなく一括で出来る方法があったら教えて下さい
お願いします   (ありんこ)


 日にちがA列、合計列がC列、埼玉F列とした場合
 C2〜F2を選択して−書式−条件付書式
 条件1に数式が =WEEKDAY(A2,1)=7を入れ
 条件2に数式が =WEEKDAY(A2,1)=1を入れてください。
 以下、書式のコピーでいいはずです。
 (川野鮎太郎)


 こちらに統合しました。
 (kazu)


『条件付書式』(ありんこ)
たびたびすみません教えて下さい
郵便料金表なのですが、表に日付に対応する曜日を自動的に入れたいのです。
さらに、土日については網掛けにしたいのです。
どのようにすればいいでしょうか教えて下さいよろしくお願い致します。

 日	曜日	合計	営業推進	パートナー	埼玉
 8月1日	日	0	0	0	0
 8月2日	月	#REF!	#REF!	#REF!	#REF!
 8月3日	火	0			
 8月4日	水	0			

↑が入ると自動的に曜日が入る。
 曜日が土日だとそのよう日の合計〜埼玉の欄が網掛けになる

以上です よろしくお願い致します


 同じような内容は、前の質問に続けていただいたほうがよろしいかと。。。
 日にちがA2(8/1)曜日がB2(日)だとして
 B2セルには=A2を入れて、書式−表示形式−ユーザー定義で、aaa にしてください。
 条件付書式は、前の質問に回答しています。
 (川野鮎太郎)

 すみませんでした。2度同じものを投稿してしまいました・・・
 どうもありがとうございます!!
 ちなみに条件付書式なのですが、書式コピーをする方法ではなくて
 一度に土日の表の行が網掛けになるという方法はできないのでしょうか??

 前の回答はお試しになりましたでしょうか。
 8月1日の行の合計から埼玉のセルまでを条件付書式の設定をして残りのセルにコピーするだけですけど。
 コピーがいやなのであれば、すべてのセルに条件付書式を一々設定しなければいけません・・・
 (川野鮎太郎)

 横から大変失礼致します。
 既にデータ等が入力されている、ということでしょうか?

 A2から 埼玉列の最終行の範囲を選択して
 条件付書式→数式が、に
 =OR(WEEKDAY($A2)=1,WEEKDAY($A2)=7)
 として、書式を設定でも出来ますが。(コピーの手間は省けます)
 こういうことがご希望なのですか?
 あとは、VBAですね。
 (jindon)

 衝突しましたぁ、、
 あまり川野鮎太郎さんの方法とかわりませんが、
 Ait+F11でVBEを起動させて標準モジュールに貼り付け
 ツール→マクロで土日網掛けを実行
 で、どうでしょう?
 でも、条件付き書式をコピーされた方が手軽の様な気がしますが、、
 余計なお世話ならごめんなさいm(__)m
(夏目雅子似)
 Sub 土日網掛け()

 Dim C As Range

 Dim MyDate As Date

 Dim MyWeekday As Integer

    With ActiveSheet

        On Error Resume Next

            For Each C In .Range("A2", .Range("A65536").End(xlUp))

                MyDate = C.Value

                MyWeekday = Weekday(MyDate)

                Select Case MyWeekday

                   Case 1, 7

                       C.Offset(, 2).Resize(, 4).Interior.Pattern = xlGray16

                   Case Else

                       C.Offset(, 2).Resize(, 4).Interior.Pattern = xlNone

                End Select

            Next C

    End With

 End Sub

 入力と同時なら、、
 シートの見出しを右クリック→コードを表示させて
 そこに貼り付けます。
 で、どうでしょう?
(夏目雅子似)
 Private Sub Worksheet_Change(ByVal Target As Range)

 Dim MyDate As Date

 Dim MyWeekday As Integer

 If Target.Count > 1 Then Exit Sub

 If Target.Column <> 1 Then Exit Sub

 If Target.Value = "" Then Exit Sub

    If IsDate(Target.Value) <> True Then
            MsgBox "日付ではありません", vbCritical
        Exit Sub
    End If

    Application.EnableEvents = False

                MyDate = Target.Value

                MyWeekday = Weekday(MyDate)

                Select Case MyWeekday

                   Case 1, 7

                       Target.Offset(, 2).Resize(, 4).Interior.Pattern = xlGray16

                   Case Else

                       Target.Offset(, 2).Resize(, 4).Interior.Pattern = xlNone

                End Select

    Application.EnableEvents = True

 End Sub

 jindonさんのおっしゃるように、頭に$を付けたら、範囲が大きくなっても一気に設定できたんですね(^_^A;
 失礼しましたm(_ _)m
 (川野鮎太郎)

 ということで、jindonさんの式をお借りして、
 C2からF○まで、すべて選択して=OR(WEEKDAY($A2)=1,WEEKDAY($A2)=7)にしてください。
                     ~~~~       ~~~~列だけ$に修正しました。
 (川野鮎太郎)

 ぴんぽ〜〜ん(^^)
 (夏目雅子似)

 行と列を固定してしまって(絶対参照)
 大丈夫ですか?
 (jindon)

 ぎゃああ、ごめんなさいm(_ _)m ×10回
 jindonさんの式そのままで、お願いします。(^_^A;
 (川野鮎太郎)


 皆様、沢山の回答をありがとうございました
 夏目雅子似様、VBAを教えていただきましてありがとうございました
 ちょっと皆様のを参考にさせていただきたいとおもいます!!
 これでかなり業務が短縮できます!!!!(ありんこ)

コメント返信:

[ 一覧(最新更新順) ]


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