|
▼ichinose さん:
返事ありがとうございます。
時間が来たら表示するには
Sub test()→Sub Auto_Open()で
いいのですか。それとも
Application.OnTime記述方法がわかりません。
よろしくお願いします。
それと下記条件でVBAだけで処理するコードも
教えていただけますか。(シートを使わない方法)
> A B
> 1 8:00 おはようございます
> 2 10:00 休憩時間ですよ
> 3 11:55 そろそろ昼食の時間です
> 4 15:00 お茶の時間ですよ
> 5 17:00 もうかえるよ
> 6 20:00 まだ頑張ってるの
>>時間変更の場合を聞きたいのですが(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
>
>とすれば、時刻やメッセージに変更や追加があっても
>シートにデータを変更・追加するだけでコードの変更が要りません。
>
>試してみてください。
|
|