[[20160207161546]] 『祝日のシート見出しを塗り潰したい』(とろろ) ページの最後に飛ぶ

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

 

『祝日のシート見出しを塗り潰したい』(とろろ)

お世話になります。
日誌を28年2月分というように1ヶ月ごとにブックを作り、
ブック内に1日分ずつ、数字のみのシート名1,2,・・・・30,31と31枚のシートを作成、
+数字ではないシート名でデータのシートをいくつか作成しています。
土日祝のシートは見出しの色を変更しているのですが、
これを誰でも簡単に短時間で出来るようにする為、VBAを作成しボタンに登録して運用しようと考えました。

年月日をセルに入れてその値から土日を判別してシート見出しの色を変更、まではできたのですが、祝日がなんともうまくいきません。

シートにセルを範囲指定して「祝日」とし、その祝日セルに入れた数字と同じシート名を祝日と判定して、見出しの色を日曜日と同じ色に変えるマクロを作ればいいと考えたのですが、
最初に作った土日の色変更マクロと合わせると土曜日の色がおかしくなったり、動かなかったりで上手くいきません。
どなたかアドバイスお願いいたします。

以下のマクロに
・リスト内(基本空白の複数セル)の空白セルに「13」「23」と入力したら
 土曜日(水色)と日曜,13,23(ピンク)※13,23は可変
 となるようにしたいのです。

−−−−−日付のシートのみ土日の色を変更−−−−−
Sub 土日シート見出し色変更()

    Dim WBK As Workbook
    Dim SH1 As Worksheet
    Set WBK = ThisWorkbook
    Dim i As Integer
      For i = 1 To 31
      Set SH1 = WBK.Worksheets(CStr(i))

        If Weekday(SH1.Range("Z4").Value) = vbSunday Then
            SH1.Tab.ColorIndex = 38
        ElseIf Weekday(SH1.Range("Z4").Value) = vbSaturday Then
            SH1.Tab.ColorIndex = 37
        Else
            SH1.Tab.ColorIndex = xlNone
        End If
      Next
End Sub
−−−−−−−−−−−−−−−−−−−−−−−−−

< 使用 アプリ:excel2016、使用 OS:Windows7 >


 いままで、土日が旨く行っていたのなら

 >   If Weekday(SH1.Range("Z4").Value) = vbSunday Then
    ↓
      If Weekday(SH1.Range("Z4").Value) = vbSunday Or _
          Application.CountIf(Range("祝日"), Day(SH1.Range("Z4").Value)) Then

(半平太) 2016/02/07(日) 17:45


>半平太さま
完璧です。ありがとうございます。
これを糧にもっと精進したいと思います。
ありがとうございました。
(とろろ) 2016/02/07(日) 19:50

コメント返信:

[ 一覧(最新更新順) ]


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