|    | 
     ▼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に変わる可能性は十分考えられますからねえ!! 
>また、基準になる時刻が増える可能性も否定できませんよね? 
> 
>本当は、予めセルに上記の時刻を入力しておけば、時刻の変更や基準になる時刻が 
>増えてもコードの変更をしなくても済むと思いますよ!! 
> 
>こんなところが上記のコードのコンセプトです。 
 
 | 
     
    
   |