[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『日曜日は赤(マクロ)』(うまうま)
下記マクロを作ったところ『型が一致しません』が表示されました。
原因を知りたいです。
Sub カレンダー_日曜赤()
Dim i As Long Worksheets("カレンダー").Select For i = 3 To 33 If Weekday(Cells(i, 1)) = 1 Then Cells(i, 1).Font.ColorIndex = 3 Next i End Sub
カレンダーシートの
A1セルに『6月』
A3セル =DATE(YEAR(A1),MONTH(A1),1)
A4セル以下 =IFERROR(IF(A3+1>EOMONTH($A$1,0),"",A3+1),"")
が入力されています。
マクロを実行すると日曜日は赤文字になりますが、
If Weekday(Cells(i, 1)) = 1 Then が黄色になってしまいます。
よろしくお願いします。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
Range("A1").Formula = "="""""
MsgBox Weekday(Range("A1"))
(てばよ) 2023/06/09(金) 09:18:44
>=IFERROR(IF(A3+1>EOMONTH($A$1,0),"",A3+1),"")
31日間フルにない月は、空白文字("")が出力されるセルがある。 空白文字を対象にWeekday()を求めようとすると型エラーになる。
Sub カレンダー_日曜赤() Dim i As Long
Worksheets("カレンダー").Select
For i = 3 To 33 If IsDate(Cells(i, 1).Value) Then ’日付データかどうか先ず確認する If Weekday(Cells(i, 1)) = 1 Then Cells(i, 1).Font.ColorIndex = 3 End If End If Next i End Sub
(半平太) 2023/06/09(金) 09:33:05
IsDateの部分では =trueは省略されているのでしょうか。
サクッとググってみただけですが、今のところ見つけられず。
(うまうま) 2023/06/09(金) 10:17:07
>IsDateの部分では =trueは省略されているのでしょうか。
そう解釈するのが正しいでしょうね。
でも、IsDate()は、TrueかFalseしか返さないので、 If True = True と言うことになり、なら左のTrueだけでいいじゃないと思えちゃうので、私は普通は書きません。
(半平太) 2023/06/09(金) 11:30:12
就業中にコッソリ通信教育のVBAをやり始めました。
またよろしくお願い致します。
(うまうま) 2023/06/09(金) 13:05:53
End If が抜けていますよ。 A3セル、A4セルの式おかしくないですか。 (IT) 2023/06/09(金) 14:37:11
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.