|
▼まーくん さん:
おはようございます。
最近は、歳のせいか週末は寝るのが早くて・・・。
>時間変更の場合を聞きたいのですが(420, 600, 1020, 1200)は
>どういう意味ですかまた、Arrayの意味も?ヘルプだとHasArray、FormulaArray
>CurrentArray、IsArrayただArrayというのは出てきませんが?
↑これについては、
Array()は、配列を作成する関数です。
中の420,600,・・・・は、時刻を分単位に換算した数値です。
8:00------>420分
10:00----->600分
もっともこれは例題としてのコードだったので
Array関数を使って配列を作成しましたが、この配列の数が多い場合や
変更や追加が予想される場合は、このArray関数は使いません。
だって、変更や追加があった場合、コードを直さなければならないですからね!!
変更や追加が予想される場合は、データをコードの外に置きます。
Excelには、シートという便利なデータ領域があるものね!!
例えばアクティブシートのA列及びB列(書式は、共に標準)に
以下のようなデータ配置します。
A B
1 8:00 おはようございます
2 10:00 休憩時間ですよ
3 11:55 そろそろ昼食の時間です
4 15:00 お茶の時間ですよ
5 17:00 もうかえるよ
6 20:00 まだ頑張ってるの
標準モジュールに
'========================================================
Sub test()
Dim rng As Range
Dim ans As Variant
Set rng = Range("a1", Cells(Rows.Count, "a").End(xlUp))
ans = Application.Match(CDbl(Time), rng, 1)
If IsError(ans) Then ans = rng.Row + rng.Rows.Count - 1
MsgBox Range("b1").Cells(ans).Value
End Sub
とすれば、時刻やメッセージに変更や追加があっても
シートにデータを変更・追加するだけでコードの変更が要りません。
試してみてください。
|
|