- ベストアンサー
Excel VBAでセルに書いた時刻を取得したいのに・・・
ExcelのVBAで、OnTimeを使い、 定時に印刷させるプログラムを組んでいます。 今までOnTimeの時刻設定に直接時刻を入れ込んでいたのですが、 ワークシートに登録した時刻を使うようにしたいと思い、 次のようにしたのですが、 Setのところの変数名で「オブジェクトが必要です」エラーが出ます。 ・・・何が悪いのでしょうか? Dim routinetime1 As String Dim routinetime2 As String Dim routinetime3 As String Set routinetime1 = Range("A1").Value Set routinetime2 = Range("B2").Value Set routinetime3 = Range("C3").Value Application.OnTime TimeValue(routinetime1), "印刷プロシージャ" Application.OnTime TimeValue(routinetime2), "印刷プロシージャ" Application.OnTime TimeValue(routinetime3), "印刷プロシージャ" よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
取り合えず、Set は余計だと思います。 あと、セルの内容にもよるのでしょうが、 routinetime1 = Range("A1").Text じゃないとエラーになるかも。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>Setのところの変数名で「オブジェクトが必要です」エラーが出ます。 Set は、(HELP から引用) "オブジェクトへの参照を、変数またはプロパティに代入します。" "代入されるオブジェクトと同じ種類の<b>オブジェクトでなければなりません</b>。" (<b></b>は、私の註) ようするに、 Set を使う場合は、routinetime1 は、右辺と同じオブジェクトでないとダメだということです。(String は、オブジェクトではなく値型なので必要ない)
補足
たびたびご回答いただき、本当にありがとうございます。 そうですか・・・今までよく理解せず使っておりました。 大変勉強になりました。ヘルプもうまく使えるようになりたいです。
補足
ありがとうございます。 おっしゃる箇所を直したら、とりあえずその部分は動きました! (他とのかねあいでまたトラブルが起きてトホホなんですけど・・・) セルから日付を取得するだけでこんなにつまずくなんて~。