[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
>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
>
miendさんの投稿
(投稿ID: 1778)
解答案の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月以降の祝日名が抽出されました。
問題の解答として合っていますでしょうか。
ゲストさんのコメント
(コメントID: 3091)
ちょっと体調を崩していました。お返事送れてしまい申し訳ありません。
以下の件。動画の内容に問題がありますね。。
ということで、差し替え版の動画を作りました。すぐに共有いたします。よろしくお願いいたします。
>この動画の最後に説明している9月以降の祝日を抽出する演習問題についての質問です。
>解答案のsub ccc()のコードについてホワイトボードのとおり書き写し、
>実行したところ、「インデックスが有効範囲にありません」とのエラーがでました。
>Forの前にReDim stHoliday(cm) As Stringを入れたら動きましたが、
>If文の中のstHoliday = Range("H2").Offset(cnt).valueのところで
>「型が一致しません。」とのエラーがでました。
>stHoliday(idx)としてみたところ
>元日から天皇誕生日までのすべての祝日を拾ってしまいました。
>
>
>
>そこで、上記のコードのIf Month(Range("I2").Offset(cnt).Value) >= 9 Then
>をIf Month(Range("G2").Offset(cnt).Value) >= 9 Thenにしたところ、
>エラーはでませんが、2009年と2010年の9月以降の祝日名が抽出されました。
>問題の解答として合っていますでしょうか。
>
>