投稿/コメントを表示します。

miendさんの投稿

(投稿ID: 1778)

この動画の最後に説明している9月以降の祝日を抽出する演習問題についての質問です。
解答案のsub ccc()のコードについてホワイトボードのとおり書き写し、
実行したところ、「インデックスが有効範囲にありません」とのエラーがでました。
Forの前にReDim stHoliday(cm) As Stringを入れたら動きましたが、
If文の中のstHoliday = Range("H2").Offset(cnt).valueのところで
「型が一致しません。」とのエラーがでました。
stHoliday(idx)としてみたところ
元日から天皇誕生日までのすべての祝日を拾ってしまいました。

[Code]
Sub ccc()
Dim stHoliday() As String
Dim cnt As Long
Dim idx As Long
Dim cm As Long
cm = Range("H65536").End(xlUp).Row - 2
 ReDim stHoliday(cm) As String
For cnt = LBound(stHoliday) To UBound(stHoliday)
If Month(Range("I2").Offset(cnt).Value) >= 9 Then
ReDim Preserve stHoliday(idx)
stHoliday(idx)= Range("H2").Offset(cnt).Value
idx = idx + 1
End If
Next

For cnt = LBound(stHoliday) To UBound(stHoliday)
Range("L2").Offset(cnt).Value = stHoliday(cnt)
Next

End Sub
[/code]

そこで、上記のコードのIf Month(Range("I2").Offset(cnt).Value) >= 9 Then
をIf Month(Range("G2").Offset(cnt).Value) >= 9 Thenにしたところ、
エラーはでませんが、2009年と2010年の9月以降の祝日名が抽出されました。
問題の解答として合っていますでしょうか。

2015/11/15 21:38