|
▼ichinose さん:
ichinoseさんありがとうございました。
解説もありがとうございました。
>▼kaoru さん:
>こんにちは。
>
>ちょっと訂正
>>
> tmarray = Array(TimeValue("10:30"), TimeValue("9:00"), TimeValue("8:30"),TimeValue("7:00"))
>'[]での囲みを取りました。付けておいても不具合はないですが、意味としては
>'取ったほうが良いと思います。
>>> Set rng = Range("b1", Cells(Rows.Count, "b").End(xlUp))
>>> For Each crng In rng
>>> With crng
>>> If .Value <> "" Then
>>> ans = Application.Match(.Value, tmarray, -1)
>>> If Not IsError(ans) Then
>>> .Value = tmarray(ans - 1)
>>> End If
>>> End If
>>> End With
>>> Next
>>> Erase tmarray
>
>> の解説を簡単にお願いいたします。
>
>これだけのコードですから、HELP等を利用して解読してみてください。
>その上で不明な点は具体的に記述してください。
>
>このコードは、「ワークシート関数のMatchをVBAで使う」
>がキーポイントです。
> tmarray = Array(TimeValue("10:30"), TimeValue("9:00"), TimeValue("8:30"),TimeValue("7:00"))
>
>というコードで配列を作っていますが、この仕様だと本来は
>コード内に定数(10:30や9:00や8:30や7:00の記述です)を記述すべきでは
>ないと思っています。
>
>だって、将来、10:30 が 11:00に変わる可能性は十分考えられますからねえ!!
>また、基準になる時刻が増える可能性も否定できませんよね?
>
>本当は、予めセルに上記の時刻を入力しておけば、時刻の変更や基準になる時刻が
>増えてもコードの変更をしなくても済むと思いますよ!!
>
>こんなところが上記のコードのコンセプトです。
|
|