質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

2回答

781閲覧

VBA 曜日の分岐について

sanrio.

総合スコア13

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2024/01/26 07:28

VBA初心者で申し訳ないのですが、質問です。
日付が入っている表をエクセルで作っています。

下記のif文を作りたいです
入力された日付が土日の場合、セルの背景を青くしたい。(祝日は含まない土日のみです)
平日の場合はセルの背景を白にしたい。

土日か?平日か?を判定をするif文を作りたいと思うのですが
どのようなコードになりますでしょうか。
何もわからなくて申し訳ないのですがよろしくお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

既に適切な回答がなされていると思いますが、
質問の冒頭にVBA初心者とありましたので、
リファレンスでなく具体的なコードの例が必要であれば、
次を参考にしてみてください。

WeekDay関数の戻り値が日曜なら1、土曜なら7なので、
戻り値を6で割った余りが1なら土日、それ以外なら平日と判定しています。

vba

1'A列の日付が土日なら着色する 2Sub setInteriorColorByDate() 3 Const firstRow As Long = 2 '日付の開始行 4 Const colorColored As String = "&HF7EBDD" 5 Const colorWhite As String = "&HFFFFFF" 6 Dim sheet As Worksheet 7 Set sheet = ThisWorkbook.Worksheets(1) 8 9 With sheet 10 Dim lastRow As Long 11 lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 12 Dim values As Variant 13 values = .Range("A" & firstRow & ":A" & lastRow).Value 14 Dim i As Long 15 Dim dateValue As Date 16 Dim interiorColor As String 17 For i = 1 To UBound(values, 1) 18 'Debug.Print Hex(.Range("A" & (i - 1 + firstRow)).Interior.color) 19 dateValue = values(i, 1) 20 '日付が土曜、日曜なら背景色を着色 21 If Weekday(dateValue) Mod 6 = 1 Then 22 interiorColor = colorColored 23 Else 24 interiorColor = colorWhite 25 End If 26 .Range("A" & (i - 1 + firstRow)).Interior.color = interiorColor 27 Next i 28 End With 29End Sub

投稿2024/01/27 05:20

編集2024/01/27 17:43
YellowGreen

総合スコア861

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YellowGreen

2024/01/27 17:49 編集

色の指定を変更したい場合は、 日付のセル範囲を一度ご希望の色に着色してから Debug.Printの行のコメントを外して実行すると 16進のカラーコードxxxxxxがイミディエイト・ウインドウに表示されますので、 Const colorColored As String = "&Hxxxxxx" のように &H を付して指定してください。
guest

0

投稿2024/01/26 15:55

km123

総合スコア33

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問